FAQ

From Openmoko

(Difference between revisions)
Jump to: navigation, search
m (Does it support Java?: Fix typos in debian's java. Wikilink to Java.)
(Misc: Link to this wiki's statistics.)
Line 607: Line 607:
  
 
The answer for the display used in GTA01 and GTA02 is '2'
 
The answer for the display used in GTA01 and GTA02 is '2'
 +
 +
=== how many visits does this wiki have? ===
 +
See this [[Wiki_statistic_numbers|wiki's statistics]] page.
  
 
=Historical=
 
=Historical=

Revision as of 16:49, 5 September 2008


NOTE: I just dragged over a number of FAQs from other sources so please forgive the current state. I will tidy this up shortly. Michael Shiloh 9/4/08


Contents

Getting Started with your Neo FreeRunner

I just received my Neo FreeRunner. Where should I start?

See Getting Started with your Neo FreeRunner

Openmoko

What is Openmoko?

Openmoko is two things:

Openmoko is a Linux distribution designed for open mobile computing platforms, such as, but not limited to, cellphones.

Openmoko is the company behind the Openmoko Linux distribution. Openmoko also manufactures mobile computing platforms, such as the Neo FreeRunner.

What is the purpose of this project?

By providing a completely open source Linux distribution, and by opening the schematics and CAD files, Openmoko's goal is to nurture explosive innovation (such as occurred with the Personal Computer) in the field of connected mobile computing, cellphones, and ubiquitous computing.

How do I join the Openmoko project?

Join one or more of the mailing lists. A great place to start is the community list.

Browse the wiki, and help improve it.

Start or join an [Openmoko project].

Start or join a local group near you.

I'm not a programmer, but I have other skills. Can I still be of use?

Absolutely. If your a visual artist, you can help us with icons and other visuals. Musicians can help contribute ringtones and other sounds. Marketing? Sales? Information visualization? Join the community mailing lists, introduce yourself, and you'll soon find a place to put your skills to good use.

Neo FreeRunner

What is the Neo FreeRunner?

The Neo FreeRunner is an open cellphone designed for the Openmoko Linux distribution. By open we mean that (a) all chips have been chosen to allow their drivers to be completely open sourced and (b) the schematics and the plastic (CAD) files are available as well.

For more details, see Neo FreeRunner specifications

What can I do with the Neo FreeRunner?

The Neo FreeRunner is designed for everyday use by end users and for continued software development and improvements by the Openmoko team and the Openmoko community.

The Openmoko software is not yet ready for everyday use.

The question is almost what can you NOT do with this phone - eventually there will be a huge range of free software applications allowing both end users and developers to get much more out of this phone than a standard "locked" mobile phone using features like the integrated GPS, bluetooth, wifi and accelerometers.

Where can I buy the Neo FreeRunner? How much?

http://www.openmoko.com. We sell both directly and through a growing list of distributors.

If you buy directly from the Openmoko webshop you will pay USD $399 for the Neo FreeRunner, USD $99 for the debug board. You can also purchase boxes of 10 FreeRunners at a price of USD $369 each. If you don't have a need for 10 units, you can join an existing or form a new group at Group_Sales.

On what bands does the Neo FreeRunner operate? Will it work in my area?

  • The Neo FreeRunner is a tri-band GSM phone. It is available in an 850/1800/1900MHz version for North America and a 900/1800/1900MHz version for the rest of the world.

Do I need the debug board?

With the Neo FreeRunner and NO debug board you can do:

  • Kernel development
  • Application development
  • Update u-boot (equivalent to PC BIOS). Neo 1973 users should only use a tested image to avoid the possibility of bricking the Neo 1973. Neo FreeRunner users do not have this concern, as a bad u-boot can always be updated using the failsafe u-boot in NOR flash
  • Update kernel and/or rootfs using Dfu-util.

With a debug board you can additionally do:

  • Use JTAG to debug u-boot, device drivers, or the kernel
  • Use the kernel console
  • Neo 1973 users can unbrick their device if they flash a wrong or non-working u-boot image.
  • Neo FreeRunner users can update u-boot in NOR flash

In summary, it is rare for a Neo FreeRunner user to require a debug board.

To emphasize, the debug board is not required in order to develop applications, system software, or even kernel or device drivers. The debug board is not required in order to gain access to the source code or the development tools.

I'd like to develop a custom product or application based on Openmoko and/or the Neo FreeRunner. How should I proceed?

Send mail to michael@openmoko.org or to steve@openmoko.com

I have a shipping related question

Visit openmoko.com

What are the benefits of an "open" phone over a "closed" phone

In a conventional closed phone, the handset maker and the mobile network operator work together to provide a service to you that best suits their business model. The capabilities of a modern smartphone equipped with GPS, Wifi and bluetooth are amazing and the result is that many features are "locked down" because they do not suit the network operator. Up until now it has been difficult to buy a phone on which you have freedom to install sofware which is not controlled by the network operators - Openmoko changes that!

A list of examples of "closed" behaviour has been started here - Problems of typical "closed" phones

Are there any known issues?

Issues relating to software are in the "known issues" section for each distribution. All distributions start here.

Issues relating to firmware and hardware are in Neo FreeRunner Hardware Issues

Note that some issues might involve a combination of hardware and software

My FreeRunner won't register to my cellphone network. What should I do?

Please see some SIMs don't work.

I read somewhere that a GSM firmware update is available to fix this problem

The GSM firmware update is applicable only to the Neo 1973. Any fixes in the update are already implemented in the GSM firmware in the Neo FreeRunner.

Can the Neo FreeRunner charge when turned off? When suspended?

The Neo FreeRunner can not charge when turned off.

The Neo FreeRunner can charge when suspended.

Can the Neo charge and use devices on a USB hub at the same time?

See here

What can we expect in future Neos?

Please join one of the mailing lists to follow and participate in this discussion.

What microSDHC-cards are supported?

See here

What hardware signals are available?

To simplify extending the hardware, various signals of interest are brought out via the JTAG connector and can be easily accessed with the debug board:

(TBA: List of singlans)

Some additional signals that did not fit on the JTAG connector are brought out to solder pads:

(TBA: List of singlans)

Is the JTAG interface that comes with GTA01 be compatible with GTA02?

Yes

Why won't the FreeRunner boot even with the charger connected?

A: Early builds of the FreeRunner1 have the issue that the phone needs to boot fully to enable charging of the battery. However, current supplied via the charger is not sufficient to boot the phone; some power is required from the battery as well2. If you've let your battery discharge totally, the only recommended3 way to boot the FreeRunner is with a spare battery. If you don't have a spare battery specifically for the FreeRunner, you can also use a Nokia battery (see Neo FreeRunner Battery for a list of compatible batteries).

1. Put in the spare battery and plug in your charger, and let the phone boot.

2. Once your phone has booted, remove the spare battery. The FreeRunner should continue running on power drawn from the charger.

3. Insert the dead battery and let it charge.

Notes:

How do I find out what image versions are in use on the phone?

A: You can run the commands given below on the phone (in an SSH session from your host PC, or in the Terminal application on the phone itself)

To find out Run
Kernel version that is currently running
 uname -a
The version of the root filesystem that you are currently using
 cat /etc/version 

or

 cat /etc/om-version
The versions of u-boot on the phone (The FreeRunner has one u-boot image in NOR memory, and one in NAND - see Booting the Neo FreeRunner for more information)
 grep  Bootloader /dev/mtdblock0  (yields the NOR u-boot version)

or

 grep  Bootloader /dev/mtdblock1  (yields the NAND u-boot version)

 


I can SSH into the phone via USB as per the wiki instructions, but dfu-util does not find the phone.

A: In brief, you need to restart (or power on) the phone to get to the NOR u-boot menu before dfu-util will be able to connect. dfu-util uses the USB DFU (Universal Serial Bus Device Firmware Upgrade) protocol, which is only available at the u-boot menu, and not Ethernet over USB, which is what is available when the phone has booted fully.

Tip: If you're just trying out different distributions, you don't need to flash them with dfu-util; you can try out new distributions by putting them on the microSD card and booting from the card instead. If you'd like to do this instead of flashing, see Booting from SD.

To get the u-boot menu:

  1. Press and hold the AUX button
  2. Press the Power button until the phone powers on and displays the boot menu
  3. Release both buttons
  4. Press and release AUX to move the lightbar, so that the menu will not time out and boot the phone).

Also see the wiki pages/sections:

Battery

What is the expected battery life?

See Neo FreeRunner (GTA02) Battery#Notes_about_expected_battery_life and more battery information in Neo_FreeRunner_(GTA02)_Battery

How do I enable fast charge mode for anything but the official mains charger?

See Forcing fast charge mode.

USB

How do I connect a USB memory-stick etc?

A: This requires an adapter Mini-B 5-pole => Type A jack or an adapter jack => jack. See Host Mode for more information.

Q: Once I have such an adapter, can I use it to connect 2 Neos to each other?

A: This question is equivalent to How to connect two [Unix/Linux] computers via USB cable and what sort of special cable is needed? -> http://www.linuxquestions.org/questions/linux-general-1/connecting-two-computers-with-a-usb-cable-data-cable-411073
It should work if one Neo is set to Host mode and the other one set to Device mode. One Neo could give power to the USB-port it the other Neo's battery is low. (I have to verify this)

How do I use an external USB or Bluetooth keyboard with the FreeRunner ?

NOTE: These commands appear to be for USB only? Could someone please supply the commands for using a Bluetooth keyboard? --eddsouza 08:21, 31 August 2008 (UTC)


Run:

echo "host" > /sys/devices/platform/s3c2410-ohci/usb_mode
echo "1" > /sys/devices/platform/neo1973-pm-host.0/hostmode

These commands will put the FreeRunner into powered USB host mode. After this, just plug in the keyboard and it'll work. Personally, I've made a .desktop file to switch into and out of host mode.

To switch back to unpowered device mode just run:

echo "device" > /sys/devices/platform/s3c2410-ohci/usb_mode
echo "0" > /sys/devices/platform/neo1973-pm-host.0/hostmode

GSM

SIM compatibility: It looks like my SIM card is not working; how do I run diagnostics?

A: Here is how to check: follow Manually_using_GSM until you get an OK prompt.

For more detailed documentation, please refer to FreeRunner_unable_to_work_with_3G_SIM_cards and Carriers.

GSM/GPRS information

The following pages contain very useful information:

GPS

How do I get the GPS working?

A: See GTA02 GPS

It takes a long time (10min+) before the FreeRunner gets the first GPS data/readings

A: See GPS Problems.

Wi-Fi

How do I get the WLAN working?

A: See GTA02 WLAN

Bluetooth

How do I get Bluetooth working manually?

A: See Manually_using_Bluetooth

Sysfs functions/functionality

How do I get low level hardware related function, like power up device, dump register?

A: See GTA02_sysfs

Display

Can it play VGA video?

No, it can do about 20 fps QVGA with software, and something beetween QVGA and VGA playing MPEG-4 using hardware (at resonable fps). Scaling is also done with GPU hardware.

How to change the background picture of the root window?

Look here.

Software

Does it support Java?

There is a port of Jalimo for Openmoko. The Debian distribution supports CacaoVM and JamVM through apt-get. See Java for more infos.

Does it support Flash so can I watch YouTube?

You don't really need Flash to watch YouTube videos, for example, if you want to watch www.youtube.com/watch?v=k9QLdK6pFCI just install mplayer and use this command:

mplayer http://ytpocket.com/getflv.php?id=k9QLdK6pFCI

or use this small script with the video URL as the first parametre:

#!/bin/sh
vid=`echo "$1" | sed 's/.*\?.*=\(.*\)/\1/'`
mplayer http://ytpocket.com/getflv.php?id=$vid

Does it support Ruby?

For Ruby 1.9, please refer to http://blog.sparkymat.net/2008/08/10/ruby-19-on-openmoko/

For Ruby 1.8.6, please refer to http://blog.wolfman.com/articles/2008/08/10/ruby-1-8-6-on-openmoko-freerunner

How can I type a '/' in the software keyboard?

See Switching Keyboards

How do I get a QWERTY layout software keyboard?

See Switching Keyboards

Software

What image comes on the Neo FreeRunner?

See factory default software image

What alternate distributions are available for the Neo FreeRunner?

See Distributions

Where can I download and reinstall the factory default image?

See Flashing the Neo FreeRunner

Can the Neo FreeRunner dual boot? Multiple boot?

Since the Neo FreeRunner can boot from the micro SD card, you can install and boot from as many distributions as will fit on your card. See Booting from SD.

Can the software do/connect to/...

Reviews of the latest "bleeding edge" daily builds of the Openmoko software stack can be seen here

At the moment, the answer to many other questions is "no". The phone is at the moment a small Linux box with a touchscreen, a working dialer and some prototype apps. Most do not function in any way that would be suitable for end-users. If you want to add a feature or application request, then look over the existing Applications and either add one, or add a feature request to the applications page.

Q: What software is on the phone?

At the moment, almost no 'end-user' applications are present and working in a usable state. It is possible to make and receive calls in some software revisions, this frequently breaks though.

Q: What software can be installed on the phone?

Pretty much any that can be cross-compiled for Arm

Is it completely free software/open source?

Yes. All software that runs on the main CPU and can be updated by the user is available in source.

Firmware in "black box" hardware modules that can not be modified by users is not available in source form. Effectively, these modules are "hardware only".

This allows, for example, that the driver for the GSM module be completely open sourced without violating any FCC rules.

How do I install and manage software on Openmoko?

ipkg: http://handhelds.org/moin/moin.cgi/Ipkg

How can I compile programs for the Neo FreeRunner?

See Toolchain.

Is there an emulator available for Openmoko?

For a lot of testing and development work you can simply run Openmoko directly on your PC.

QEMU

QEMU can emulate the Neo 1973 and the Neo FreeRunner. The MokoMakefile has support for automatically building, flashing, and running the Neo emulator.

  • Users of other Linux distributions can try the following:
"make qemu” will build qemu-neo1973, download the latest official openmoko images, flash the images into the virtual NAND flash, and run the emulator.

See Qemu for more advanced information on running Openmoko in Qemu.

Xoo

Xoo. Koen says: "Xoo should be enough for most applications people will develop, since most don't need access to the GSM uart directly. If you're hardcore you could use qemu + xoo, but that still doesn't emulate all the hardware quirks (e.g. unaligned access)".

Update: Stefan Schmidt has resized the Neo1973 Mock-up and written a small description for xoo. In his words:

It's not really usable at all, as you need a really high screen resolution to fit the whole picture on your screen. And of course the dpi are wrong. Even no buttons because I can't remember where they are at the case.

http://www.datenfreihafen.org/~stefan/OpenMoko/neo1973-xoo-device.tar.bz2

Start with 'xoo --device /path/to/neo1973.xml'

Some more details here.

Xephyr

Or use Xephyr directly with locally compiled programs (e.g. matchbox svn + openmoko):

Xephyr -screen 480x640 -nolisten tcp -ac :1 &
export DISPLAY=:1
export LD_LIBRARY_PATH=/usr/local/lib
matchbox-window-manager -display $DISPLAY -use_titlebar no \
 -use_super_modal yes -use_lowlight yes -use_dialog_mode static \
 -use_cursor yes &
matchbox-panel --geometry=480x44 --end-applets=clock &
openmoko-footer &
openmoko-taskmanager &

Where can I find some type of tutorial for a 'Hello, world' on Openmoko?

This should get you started:

Can PalmOS apps applications be ported to run on Openmoko?

Making legacy apps written for the "Garnet" OS (née "Palm OS") run on Linux is decidedly non-trivial.

PalmOS apps are in general very hard to simply 'port'. Particularly well-designed programs may make it possible.

The ACCESS Linux Platform will include Garnet on Host (GHost), a PalmOS emulator that will support M6800 (68k) and ARM PalmOS applications. This part (GarnetVM and the .prc loader) will however be closed-source and likely under a restrictive license (fact confirmed by ACCESS Co. employees), making it rather unusable. In addition GarnetVM depends on Hiker and other packages.

It is possible that POSE, an emulator that simulates a Palm device on a Linux host could be used to allow 68k based applications to run. This emulator has been around a long time; one expects that it will also run on Openmoko, but this has to be considered a short-term bandaid rather than a long-term solution.

Hopefully emulation will be necessary only for M68000 code (pre-PalmOS 5) while native ARM programs can run natively under Linux, provided a proper set of PalmOS libraries and a .prc executable loader.

Does it have Java?

It will have eventually, if you help us to get it working. Some good places to keep track of would be projects.openmoko.org and PhoneME.

Project [Jalimo] is a project aiming to provide a Java stack on mobile devices. This project supports Openmoko.

What are the relevant X11 details?

See xdpyinfo output.

Does Openmoko run on any other hardware?

You can run it on your PC. You may be able to run it on other mobile platforms


Will it be possible to use popular VoIP applications such as Skype on the Openmoko platform?

Since it has WiFi the FreeRunner should be a good platform for VOIP use.

In either case please check for softphone apps ported to the Openmoko distribution at the projects page. We need to focus efforts on free software. Not convincing non-free software companies to release binaries for our Neos.

Will it be possible to use popular Instant Messaging applications such as MSN Messenger?

Very probably. MSN is closed source and will only run where Microsoft wants you to run it. But there are many Open Source IM clients, many of which have a plugin architecture and so support the use of more than one IM protocol, even simultaneously. One example is Pidgin, formerly called GAIM. GPRS does induce a certain amount of latency but that should not be a problem for simple, text-oriented chat between parties. And the GTA02's WiFi will make it even better.

2007.2 factory default software image

Where can I download and reinstall the factory default image?

Flashing_the_Neo_FreeRunner

Any known issues with the factory installed image on the Neo FreeRunner?

See 2007.2 Known Issues

Official Openmoko image (Om 2008.8, also known as ASU)

Where do I get the latest version of the official Openmoko image, 2008.8 (also known as ASU)?

See download Om 2008.8 images

Why are the buttons in TangoGPS too large? The zoom out is missing!

There is no GTK engine or theme installed with the ASU build. Fortunately, this is easy to fix!

At a terminal:

# opkg install moko-gtk-theme moko-gtk-engine
# ln -s /usr/share/themes/Moko/gtk-2.0/gtkrc /home/root/.gtkrc-2.0

Now you have pretty colors and widgets, but the font is too big. Edit /usr/share/themes/Moko/gtk-2.0/gtkrc in your favorite text editor and add the following line:

gtk-font-name = "Sans 4"

To use the openmoko icon theme, install it with:

# opkg install openmoko-icon-theme-standard2

and enable it editing the /usr/share/themes/Moko/gtk-2.0/gtkrc adding the line:

gtk-icon-theme-name="openmoko-standard"

You shouldn't even need to restart the device, although you will need to restart any GTK-based programs.

Debian

How do I install Debian on the Neo FreeRunner?

See Debian Installation

Any known issues with Debian on the Neo FreeRunner?

See Debian Known Issues

How do I replace the matchbox window manager with the xfce window manager?

Replace the matchbox-wm line in zhone-session with xfwm4 to start the xfce-wm.

Here's my (Fox Mulder) /usr/bin/zhone-session file which works with xfwm and matchbox keyboard popup:

#!/bin/sh

#zhone &
exec startxfce4 &
matchbox-keyboard-toggle &
#exec matchbox-window-manager -use_titlebar yes
exec xfwm4

Distribution Customization

Compilation & packaging

What is the 'overlay' approach to bitbake development?

You can create a local overlay for the bitbake build chain and develop in the overlay as described in Application Development Crash Course.

Which .bb files are related with the Openmoko?

Are there any configuration files for Openmoko?

How can I port an application written with autotools to Openmoko?

After you source the Openmoko toolchain variables, the Openmoko processor compiler becomes the default compiler. You can compile any GNU - like project just typing ./configure --host i686 and then make - it will produce libraries and executables as expected. Just these executables will not run on your i686 host - they will run on Openmoko ARM processor. Use scp to upload the executables to your phone.

How can I add an application written with autotools to the openmoko tree?

How can I make changes in the openmoko applications?

How can I submit my changes?

How can I use the mokomakefile in the development process? How?

Yes, MokoMakefile can be used in the development process. See Developing with MokoMakefile.

What's the way to include/exclude a newly added package to/from the final rootfs?

Where do the final ipk & binary files reside?

ipk files are in
./build/tmp/deploy/glibc/ipk/
binary images are in
./build/tmp/deploy/glibc/images/fic-gta01/

How can I add an application to the applications list?

How can I assign an image to my new application to be seen in the applications list?

The Openmoko project tree contains the folder 'data' where you can put any 128*128 icon. You need to mention the icon in two places in this folder:

  • Makefile.am must contain the line dist_appicon_DATA = <icon_name>.png
  • The <application_name>.desktop file that must be in this folder should contain the Icon=<icon_name> (without file type).

Networking/Connectivity

What kind of connectivity?

Tri-band GSM (commonly known as "European tri-band", 900/1800/1900 MHz), GPRS Class12/CS4 2.5G (Not EDGE), Bluetooth 2.0 EDR, USB in all versions. WiFi: Atheros AR6K in GTA02. (No 3G in year 2007 models)

Can I bridge to an Ethernet (wired or unwired) network via a suitable Bluetooth enabled router?

Yes - see this howto for how to configure a linux computer to act as such a router and Bluetooth Support.

What providers provide the GSM required for Neo1973, or FreeRunner?

See Neo1973 compatible cellphone providers

Will Openmoko "Just Work" with Mac OS X?

There has been some discussion of this on the mailing list. There is motivation, and there are interested developers. Not being a Mac OS X user, I don't know enough to summarize the discussion to answer this question. Can someone please fill in?

For IP over USB cable connectivity, it is planned to improve/adapt the AJZaurusUSB driver, allowing ssh into the Openmoko.

It is expected that (Bluetooth/UB) SyncML based interoperation for contacts and events can easily be achieved by a patch to the Apple iSync configuration tables.

There is an open source implementation of Cocoa (GNUstep) that aims to run MacOS X compatible applications (sort of PPC/x86/ARM universal binaries) on Openmoko devices: mySTEP.

Misc

On the lists on lists.openmoko.org, should replies be added above or below the original text?

Please reply UNDER post.

How can I find out if a question or topic has already been discussed on the mailing lists?

By searching the mailing list archives. For example, using Google searches:

site:openmoko.org text

For example, to search for accelerometer:

site:openmoko.org accelerometer

If you only want to read the "official" mails from FIC people or from Openmoko people:

site:openmoko.org text "at fic.com.tw"
site:openmoko.org text "at openmoko.org"

For example to search for "release date" from FIC people:

site:openmoko.org "release date" "at fic.com.tw"

Alternatively you can use the custom Openmoko search engine that is using Google Co-op.

how many dead pixels may the LCM have before calling it defect?

The answer for the display used in GTA01 and GTA02 is '2'

how many visits does this wiki have?

See this wiki's statistics page.

Historical

The Neo1973 was last available in Febuary 2008.

Neo1973 Hardware

What are the hardware specifications of Neo 1973 ?

See page Neo1973_Hardware and category Neo1973 Hardware and Disassembling Neo1973

How do I input text?

Use provided keyboard app.

Use Bluetooth keyboard.

For more methods and ideas see Wishlist:Text_Input.

Can I record calls and/or play audio files in calls?

Yes, audio path from GSM to/from mic and speakers is completely controllable by user. For example recording calls (both sides) and implementing an Answering Machine is possible. Also using text->speech should be possible or modifying outgoing voice. Currently there is no software bundled in phone to do this. There are only 2 A/D inputs and three D/A outputs (one dedicated to the earpiece). This means that stereo audio playback cannot happen at the same time as the Answering Machine functionality, amongst other things. See the audio page. Neo1973 Audio Subsystem

What is the battery life?

There has been no word on this so far, but see these estimates for a rough idea. More information about the battery here.

USB

What can I do with the USB port on the Neo?

Charge the phone, communicate with it over USB-serial, or USB-networking.

Plug external devices, such as wifi, cameras, or mass-storage devices.

What can't I do with the USB?

The only limitation on current hardware seems to be no usb 2.0 support, which means slower communication with 2.0 devices.

Why is only USB 1.1 provided?

The processor has USB 1.1 built in. One with USB2 built in would have been more expensive, and might not be open.

The FreeRunner has the same processor as the Neo1973.

What are the details of the USB port on the Neo? How does it compare to USB On-The-Go?

The Neo will have mini-USB-B, and will be able to function as either a host or a device. It will NOT be USB On-The-Go. OTG is a complex specification, and it comprises way more than just an AB socket, but also electrical and software components which cannot be provide by the S3C2410.

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).

Personal tools


NOTE: I just dragged over a number of FAQs from other sources so please forgive the current state. I will tidy this up shortly. Michael Shiloh 9/4/08


Getting Started with your Neo FreeRunner

I just received my Neo FreeRunner. Where should I start?

See Getting Started with your Neo FreeRunner

Openmoko

What is Openmoko?

Openmoko is two things:

Openmoko is a Linux distribution designed for open mobile computing platforms, such as, but not limited to, cellphones.

Openmoko is the company behind the Openmoko Linux distribution. Openmoko also manufactures mobile computing platforms, such as the Neo FreeRunner.

What is the purpose of this project?

By providing a completely open source Linux distribution, and by opening the schematics and CAD files, Openmoko's goal is to nurture explosive innovation (such as occurred with the Personal Computer) in the field of connected mobile computing, cellphones, and ubiquitous computing.

How do I join the Openmoko project?

Join one or more of the mailing lists. A great place to start is the community list.

Browse the wiki, and help improve it.

Start or join an [Openmoko project].

Start or join a local group near you.

I'm not a programmer, but I have other skills. Can I still be of use?

Absolutely. If your a visual artist, you can help us with icons and other visuals. Musicians can help contribute ringtones and other sounds. Marketing? Sales? Information visualization? Join the community mailing lists, introduce yourself, and you'll soon find a place to put your skills to good use.

Neo FreeRunner

What is the Neo FreeRunner?

The Neo FreeRunner is an open cellphone designed for the Openmoko Linux distribution. By open we mean that (a) all chips have been chosen to allow their drivers to be completely open sourced and (b) the schematics and the plastic (CAD) files are available as well.

For more details, see Neo FreeRunner specifications

What can I do with the Neo FreeRunner?

The Neo FreeRunner is designed for everyday use by end users and for continued software development and improvements by the Openmoko team and the Openmoko community.

The Openmoko software is not yet ready for everyday use.

The question is almost what can you NOT do with this phone - eventually there will be a huge range of free software applications allowing both end users and developers to get much more out of this phone than a standard "locked" mobile phone using features like the integrated GPS, bluetooth, wifi and accelerometers.

Where can I buy the Neo FreeRunner? How much?

http://www.openmoko.com. We sell both directly and through a growing list of distributors.

If you buy directly from the Openmoko webshop you will pay USD $399 for the Neo FreeRunner, USD $99 for the debug board. You can also purchase boxes of 10 FreeRunners at a price of USD $369 each. If you don't have a need for 10 units, you can join an existing or form a new group at Group_Sales.

On what bands does the Neo FreeRunner operate? Will it work in my area?

  • The Neo FreeRunner is a tri-band GSM phone. It is available in an 850/1800/1900MHz version for North America and a 900/1800/1900MHz version for the rest of the world.

Do I need the debug board?

With the Neo FreeRunner and NO debug board you can do:

  • Kernel development
  • Application development
  • Update u-boot (equivalent to PC BIOS). Neo 1973 users should only use a tested image to avoid the possibility of bricking the Neo 1973. Neo FreeRunner users do not have this concern, as a bad u-boot can always be updated using the failsafe u-boot in NOR flash
  • Update kernel and/or rootfs using Dfu-util.

With a debug board you can additionally do:

  • Use JTAG to debug u-boot, device drivers, or the kernel
  • Use the kernel console
  • Neo 1973 users can unbrick their device if they flash a wrong or non-working u-boot image.
  • Neo FreeRunner users can update u-boot in NOR flash

In summary, it is rare for a Neo FreeRunner user to require a debug board.

To emphasize, the debug board is not required in order to develop applications, system software, or even kernel or device drivers. The debug board is not required in order to gain access to the source code or the development tools.

I'd like to develop a custom product or application based on Openmoko and/or the Neo FreeRunner. How should I proceed?

Send mail to michael@openmoko.org or to steve@openmoko.com

I have a shipping related question

Visit openmoko.com

What are the benefits of an "open" phone over a "closed" phone

In a conventional closed phone, the handset maker and the mobile network operator work together to provide a service to you that best suits their business model. The capabilities of a modern smartphone equipped with GPS, Wifi and bluetooth are amazing and the result is that many features are "locked down" because they do not suit the network operator. Up until now it has been difficult to buy a phone on which you have freedom to install sofware which is not controlled by the network operators - Openmoko changes that!

A list of examples of "closed" behaviour has been started here - Problems of typical "closed" phones

Are there any known issues?

Issues relating to software are in the "known issues" section for each distribution. All distributions start here.

Issues relating to firmware and hardware are in Neo FreeRunner Hardware Issues

Note that some issues might involve a combination of hardware and software

My FreeRunner won't register to my cellphone network. What should I do?

Please see some SIMs don't work.

I read somewhere that a GSM firmware update is available to fix this problem

The GSM firmware update is applicable only to the Neo 1973. Any fixes in the update are already implemented in the GSM firmware in the Neo FreeRunner.

Can the Neo FreeRunner charge when turned off? When suspended?

The Neo FreeRunner can not charge when turned off.

The Neo FreeRunner can charge when suspended.

Can the Neo charge and use devices on a USB hub at the same time?

See here

What can we expect in future Neos?

Please join one of the mailing lists to follow and participate in this discussion.

What microSDHC-cards are supported?

See here

What hardware signals are available?

To simplify extending the hardware, various signals of interest are brought out via the JTAG connector and can be easily accessed with the debug board:

(TBA: List of singlans)

Some additional signals that did not fit on the JTAG connector are brought out to solder pads:

(TBA: List of singlans)

Is the JTAG interface that comes with GTA01 be compatible with GTA02?

Yes

Why won't the FreeRunner boot even with the charger connected?

A: Early builds of the FreeRunner1 have the issue that the phone needs to boot fully to enable charging of the battery. However, current supplied via the charger is not sufficient to boot the phone; some power is required from the battery as well2. If you've let your battery discharge totally, the only recommended3 way to boot the FreeRunner is with a spare battery. If you don't have a spare battery specifically for the FreeRunner, you can also use a Nokia battery (see Neo FreeRunner Battery for a list of compatible batteries).

1. Put in the spare battery and plug in your charger, and let the phone boot.

2. Once your phone has booted, remove the spare battery. The FreeRunner should continue running on power drawn from the charger.

3. Insert the dead battery and let it charge.

Notes:

How do I find out what image versions are in use on the phone?

A: You can run the commands given below on the phone (in an SSH session from your host PC, or in the Terminal application on the phone itself)

To find out Run
Kernel version that is currently running
 uname -a
The version of the root filesystem that you are currently using
 cat /etc/version 

or

 cat /etc/om-version
The versions of u-boot on the phone (The FreeRunner has one u-boot image in NOR memory, and one in NAND - see Booting the Neo FreeRunner for more information)
 grep  Bootloader /dev/mtdblock0  (yields the NOR u-boot version)

or

 grep  Bootloader /dev/mtdblock1  (yields the NAND u-boot version)

 


I can SSH into the phone via USB as per the wiki instructions, but dfu-util does not find the phone.

A: In brief, you need to restart (or power on) the phone to get to the NOR u-boot menu before dfu-util will be able to connect. dfu-util uses the USB DFU (Universal Serial Bus Device Firmware Upgrade) protocol, which is only available at the u-boot menu, and not Ethernet over USB, which is what is available when the phone has booted fully.

Tip: If you're just trying out different distributions, you don't need to flash them with dfu-util; you can try out new distributions by putting them on the microSD card and booting from the card instead. If you'd like to do this instead of flashing, see Booting from SD.

To get the u-boot menu:

  1. Press and hold the AUX button
  2. Press the Power button until the phone powers on and displays the boot menu
  3. Release both buttons
  4. Press and release AUX to move the lightbar, so that the menu will not time out and boot the phone).

Also see the wiki pages/sections:

Battery

What is the expected battery life?

See Neo FreeRunner (GTA02) Battery#Notes_about_expected_battery_life and more battery information in Neo_FreeRunner_(GTA02)_Battery

How do I enable fast charge mode for anything but the official mains charger?

See Forcing fast charge mode.

USB

How do I connect a USB memory-stick etc?

A: This requires an adapter Mini-B 5-pole => Type A jack or an adapter jack => jack. See Host Mode for more information.

Q: Once I have such an adapter, can I use it to connect 2 Neos to each other?

A: This question is equivalent to How to connect two [Unix/Linux] computers via USB cable and what sort of special cable is needed? -> http://www.linuxquestions.org/questions/linux-general-1/connecting-two-computers-with-a-usb-cable-data-cable-411073
It should work if one Neo is set to Host mode and the other one set to Device mode. One Neo could give power to the USB-port it the other Neo's battery is low. (I have to verify this)

How do I use an external USB or Bluetooth keyboard with the FreeRunner ?

NOTE: These commands appear to be for USB only? Could someone please supply the commands for using a Bluetooth keyboard? --eddsouza 08:21, 31 August 2008 (UTC)


Run:

echo "host" > /sys/devices/platform/s3c2410-ohci/usb_mode
echo "1" > /sys/devices/platform/neo1973-pm-host.0/hostmode

These commands will put the FreeRunner into powered USB host mode. After this, just plug in the keyboard and it'll work. Personally, I've made a .desktop file to switch into and out of host mode.

To switch back to unpowered device mode just run:

echo "device" > /sys/devices/platform/s3c2410-ohci/usb_mode
echo "0" > /sys/devices/platform/neo1973-pm-host.0/hostmode

GSM

SIM compatibility: It looks like my SIM card is not working; how do I run diagnostics?

A: Here is how to check: follow Manually_using_GSM until you get an OK prompt.

For more detailed documentation, please refer to FreeRunner_unable_to_work_with_3G_SIM_cards and Carriers.

GSM/GPRS information

The following pages contain very useful information:

GPS

How do I get the GPS working?

A: See GTA02 GPS

It takes a long time (10min+) before the FreeRunner gets the first GPS data/readings

A: See GPS Problems.

Wi-Fi

How do I get the WLAN working?

A: See GTA02 WLAN

Bluetooth

How do I get Bluetooth working manually?

A: See Manually_using_Bluetooth

Sysfs functions/functionality

How do I get low level hardware related function, like power up device, dump register?

A: See GTA02_sysfs

Display

Can it play VGA video?

No, it can do about 20 fps QVGA with software, and something beetween QVGA and VGA playing MPEG-4 using hardware (at resonable fps). Scaling is also done with GPU hardware.

How to change the background picture of the root window?

Look here.

Software

Does it support Java?

There is a port of Jalimo for Openmoko. The Debian distribution supports CacaoVM and JamVM through apt-get. See Java for more infos.

Does it support Flash so can I watch YouTube?

You don't really need Flash to watch YouTube videos, for example, if you want to watch www.youtube.com/watch?v=k9QLdK6pFCI just install mplayer and use this command:

mplayer http://ytpocket.com/getflv.php?id=k9QLdK6pFCI

or use this small script with the video URL as the first parametre:

#!/bin/sh
vid=`echo "$1" | sed 's/.*\?.*=\(.*\)/\1/'`
mplayer http://ytpocket.com/getflv.php?id=$vid

Does it support Ruby?

For Ruby 1.9, please refer to http://blog.sparkymat.net/2008/08/10/ruby-19-on-openmoko/

For Ruby 1.8.6, please refer to http://blog.wolfman.com/articles/2008/08/10/ruby-1-8-6-on-openmoko-freerunner

How can I type a '/' in the software keyboard?

See Switching Keyboards

How do I get a QWERTY layout software keyboard?

See Switching Keyboards

Software

What image comes on the Neo FreeRunner?

See factory default software image

What alternate distributions are available for the Neo FreeRunner?

See Distributions

Where can I download and reinstall the factory default image?

See Flashing the Neo FreeRunner

Can the Neo FreeRunner dual boot? Multiple boot?

Since the Neo FreeRunner can boot from the micro SD card, you can install and boot from as many distributions as will fit on your card. See Booting from SD.

Can the software do/connect to/...

Reviews of the latest "bleeding edge" daily builds of the Openmoko software stack can be seen here

At the moment, the answer to many other questions is "no". The phone is at the moment a small Linux box with a touchscreen, a working dialer and some prototype apps. Most do not function in any way that would be suitable for end-users. If you want to add a feature or application request, then look over the existing Applications and either add one, or add a feature request to the applications page.

Q: What software is on the phone?

At the moment, almost no 'end-user' applications are present and working in a usable state. It is possible to make and receive calls in some software revisions, this frequently breaks though.

Q: What software can be installed on the phone?

Pretty much any that can be cross-compiled for Arm

Is it completely free software/open source?

Yes. All software that runs on the main CPU and can be updated by the user is available in source.

Firmware in "black box" hardware modules that can not be modified by users is not available in source form. Effectively, these modules are "hardware only".

This allows, for example, that the driver for the GSM module be completely open sourced without violating any FCC rules.

How do I install and manage software on Openmoko?

ipkg: http://handhelds.org/moin/moin.cgi/Ipkg

How can I compile programs for the Neo FreeRunner?

See Toolchain.

Is there an emulator available for Openmoko?

For a lot of testing and development work you can simply run Openmoko directly on your PC.

QEMU

QEMU can emulate the Neo 1973 and the Neo FreeRunner. The MokoMakefile has support for automatically building, flashing, and running the Neo emulator.

  • Users of other Linux distributions can try the following:
"make qemu” will build qemu-neo1973, download the latest official openmoko images, flash the images into the virtual NAND flash, and run the emulator.

See Qemu for more advanced information on running Openmoko in Qemu.

Xoo

Xoo. Koen says: "Xoo should be enough for most applications people will develop, since most don't need access to the GSM uart directly. If you're hardcore you could use qemu + xoo, but that still doesn't emulate all the hardware quirks (e.g. unaligned access)".

Update: Stefan Schmidt has resized the Neo1973 Mock-up and written a small description for xoo. In his words:

It's not really usable at all, as you need a really high screen resolution to fit the whole picture on your screen. And of course the dpi are wrong. Even no buttons because I can't remember where they are at the case.

http://www.datenfreihafen.org/~stefan/OpenMoko/neo1973-xoo-device.tar.bz2

Start with 'xoo --device /path/to/neo1973.xml'

Some more details here.

Xephyr

Or use Xephyr directly with locally compiled programs (e.g. matchbox svn + openmoko):

Xephyr -screen 480x640 -nolisten tcp -ac :1 &
export DISPLAY=:1
export LD_LIBRARY_PATH=/usr/local/lib
matchbox-window-manager -display $DISPLAY -use_titlebar no \
 -use_super_modal yes -use_lowlight yes -use_dialog_mode static \
 -use_cursor yes &
matchbox-panel --geometry=480x44 --end-applets=clock &
openmoko-footer &
openmoko-taskmanager &

Where can I find some type of tutorial for a 'Hello, world' on Openmoko?

This should get you started:

Can PalmOS apps applications be ported to run on Openmoko?

Making legacy apps written for the "Garnet" OS (née "Palm OS") run on Linux is decidedly non-trivial.

PalmOS apps are in general very hard to simply 'port'. Particularly well-designed programs may make it possible.

The ACCESS Linux Platform will include Garnet on Host (GHost), a PalmOS emulator that will support M6800 (68k) and ARM PalmOS applications. This part (GarnetVM and the .prc loader) will however be closed-source and likely under a restrictive license (fact confirmed by ACCESS Co. employees), making it rather unusable. In addition GarnetVM depends on Hiker and other packages.

It is possible that POSE, an emulator that simulates a Palm device on a Linux host could be used to allow 68k based applications to run. This emulator has been around a long time; one expects that it will also run on Openmoko, but this has to be considered a short-term bandaid rather than a long-term solution.

Hopefully emulation will be necessary only for M68000 code (pre-PalmOS 5) while native ARM programs can run natively under Linux, provided a proper set of PalmOS libraries and a .prc executable loader.

Does it have Java?

It will have eventually, if you help us to get it working. Some good places to keep track of would be projects.openmoko.org and PhoneME.

Project [Jalimo] is a project aiming to provide a Java stack on mobile devices. This project supports Openmoko.

What are the relevant X11 details?

See xdpyinfo output.

Does Openmoko run on any other hardware?

You can run it on your PC. You may be able to run it on other mobile platforms


Will it be possible to use popular VoIP applications such as Skype on the Openmoko platform?

Since it has WiFi the FreeRunner should be a good platform for VOIP use.

In either case please check for softphone apps ported to the Openmoko distribution at the projects page. We need to focus efforts on free software. Not convincing non-free software companies to release binaries for our Neos.

Will it be possible to use popular Instant Messaging applications such as MSN Messenger?

Very probably. MSN is closed source and will only run where Microsoft wants you to run it. But there are many Open Source IM clients, many of which have a plugin architecture and so support the use of more than one IM protocol, even simultaneously. One example is Pidgin, formerly called GAIM. GPRS does induce a certain amount of latency but that should not be a problem for simple, text-oriented chat between parties. And the GTA02's WiFi will make it even better.

2007.2 factory default software image

Where can I download and reinstall the factory default image?

Flashing_the_Neo_FreeRunner

Any known issues with the factory installed image on the Neo FreeRunner?

See 2007.2 Known Issues

Official Openmoko image (Om 2008.8, also known as ASU)

Where do I get the latest version of the official Openmoko image, 2008.8 (also known as ASU)?

See download Om 2008.8 images

Why are the buttons in TangoGPS too large? The zoom out is missing!

There is no GTK engine or theme installed with the ASU build. Fortunately, this is easy to fix!

At a terminal:

# opkg install moko-gtk-theme moko-gtk-engine
# ln -s /usr/share/themes/Moko/gtk-2.0/gtkrc /home/root/.gtkrc-2.0

Now you have pretty colors and widgets, but the font is too big. Edit /usr/share/themes/Moko/gtk-2.0/gtkrc in your favorite text editor and add the following line:

gtk-font-name = "Sans 4"

To use the openmoko icon theme, install it with:

# opkg install openmoko-icon-theme-standard2

and enable it editing the /usr/share/themes/Moko/gtk-2.0/gtkrc adding the line:

gtk-icon-theme-name="openmoko-standard"

You shouldn't even need to restart the device, although you will need to restart any GTK-based programs.

Debian

How do I install Debian on the Neo FreeRunner?

See Debian Installation

Any known issues with Debian on the Neo FreeRunner?

See Debian Known Issues

How do I replace the matchbox window manager with the xfce window manager?

Replace the matchbox-wm line in zhone-session with xfwm4 to start the xfce-wm.

Here's my (Fox Mulder) /usr/bin/zhone-session file which works with xfwm and matchbox keyboard popup:

#!/bin/sh

#zhone &
exec startxfce4 &
matchbox-keyboard-toggle &
#exec matchbox-window-manager -use_titlebar yes
exec xfwm4

Distribution Customization

Compilation & packaging

What is the 'overlay' approach to bitbake development?

You can create a local overlay for the bitbake build chain and develop in the overlay as described in Application Development Crash Course.

Which .bb files are related with the Openmoko?

Are there any configuration files for Openmoko?

How can I port an application written with autotools to Openmoko?

After you source the Openmoko toolchain variables, the Openmoko processor compiler becomes the default compiler. You can compile any GNU - like project just typing ./configure --host i686 and then make - it will produce libraries and executables as expected. Just these executables will not run on your i686 host - they will run on Openmoko ARM processor. Use scp to upload the executables to your phone.

How can I add an application written with autotools to the openmoko tree?

How can I make changes in the openmoko applications?

How can I submit my changes?

How can I use the mokomakefile in the development process? How?

Yes, MokoMakefile can be used in the development process. See Developing with MokoMakefile.

What's the way to include/exclude a newly added package to/from the final rootfs?

Where do the final ipk & binary files reside?

ipk files are in
./build/tmp/deploy/glibc/ipk/
binary images are in
./build/tmp/deploy/glibc/images/fic-gta01/

How can I add an application to the applications list?

How can I assign an image to my new application to be seen in the applications list?

The Openmoko project tree contains the folder 'data' where you can put any 128*128 icon. You need to mention the icon in two places in this folder:

  • Makefile.am must contain the line dist_appicon_DATA = <icon_name>.png
  • The <application_name>.desktop file that must be in this folder should contain the Icon=<icon_name> (without file type).

Networking/Connectivity

What kind of connectivity?

Tri-band GSM (commonly known as "European tri-band", 900/1800/1900 MHz), GPRS Class12/CS4 2.5G (Not EDGE), Bluetooth 2.0 EDR, USB in all versions. WiFi: Atheros AR6K in GTA02. (No 3G in year 2007 models)

Can I bridge to an Ethernet (wired or unwired) network via a suitable Bluetooth enabled router?

Yes - see this howto for how to configure a linux computer to act as such a router and Bluetooth Support.

What providers provide the GSM required for Neo1973, or FreeRunner?

See Neo1973 compatible cellphone providers

Will Openmoko "Just Work" with Mac OS X?

There has been some discussion of this on the mailing list. There is motivation, and there are interested developers. Not being a Mac OS X user, I don't know enough to summarize the discussion to answer this question. Can someone please fill in?

For IP over USB cable connectivity, it is planned to improve/adapt the AJZaurusUSB driver, allowing ssh into the Openmoko.

It is expected that (Bluetooth/UB) SyncML based interoperation for contacts and events can easily be achieved by a patch to the Apple iSync configuration tables.

There is an open source implementation of Cocoa (GNUstep) that aims to run MacOS X compatible applications (sort of PPC/x86/ARM universal binaries) on Openmoko devices: mySTEP.

Misc

On the lists on lists.openmoko.org, should replies be added above or below the original text?

Please reply UNDER post.

How can I find out if a question or topic has already been discussed on the mailing lists?

By searching the mailing list archives. For example, using Google searches:

site:openmoko.org text

For example, to search for accelerometer:

site:openmoko.org accelerometer

If you only want to read the "official" mails from FIC people or from Openmoko people:

site:openmoko.org text "at fic.com.tw"
site:openmoko.org text "at openmoko.org"

For example to search for "release date" from FIC people:

site:openmoko.org "release date" "at fic.com.tw"

Alternatively you can use the custom Openmoko search engine that is using Google Co-op.

how many dead pixels may the LCM have before calling it defect?

The answer for the display used in GTA01 and GTA02 is '2'

how many visits does this wiki have?

See this wiki's statistics page.

Historical

The Neo1973 was last available in Febuary 2008.

Neo1973 Hardware

What are the hardware specifications of Neo 1973 ?

See page Neo1973_Hardware and category Neo1973 Hardware and Disassembling Neo1973

How do I input text?

Use provided keyboard app.

Use Bluetooth keyboard.

For more methods and ideas see Wishlist:Text_Input.

Can I record calls and/or play audio files in calls?

Yes, audio path from GSM to/from mic and speakers is completely controllable by user. For example recording calls (both sides) and implementing an Answering Machine is possible. Also using text->speech should be possible or modifying outgoing voice. Currently there is no software bundled in phone to do this. There are only 2 A/D inputs and three D/A outputs (one dedicated to the earpiece). This means that stereo audio playback cannot happen at the same time as the Answering Machine functionality, amongst other things. See the audio page. Neo1973 Audio Subsystem

What is the battery life?

There has been no word on this so far, but see these estimates for a rough idea. More information about the battery here.

USB

What can I do with the USB port on the Neo?

Charge the phone, communicate with it over USB-serial, or USB-networking.

Plug external devices, such as wifi, cameras, or mass-storage devices.

What can't I do with the USB?

The only limitation on current hardware seems to be no usb 2.0 support, which means slower communication with 2.0 devices.

Why is only USB 1.1 provided?

The processor has USB 1.1 built in. One with USB2 built in would have been more expensive, and might not be open.

The FreeRunner has the same processor as the Neo1973.

What are the details of the USB port on the Neo? How does it compare to USB On-The-Go?

The Neo will have mini-USB-B, and will be able to function as either a host or a device. It will NOT be USB On-The-Go. OTG is a complex specification, and it comprises way more than just an AB socket, but also electrical and software components which cannot be provide by the S3C2410.

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).