Getting Started with your Neo FreeRunner

From Openmoko

Revision as of 21:51, 17 July 2008 by Kriss (Talk | contribs)

Jump to: navigation, search


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.

Neo FreeRunner Package

Contents

The Package Contents

Inside package
Circle2.gif Neo FreeRunner
Circle2.gif Stylus
Circle2.gif Battery
Circle2.gif Charger
Circle2.gif USB Cable
Circle2.gif microSD Card 512MB & SD adapter

Getting To Know the Neo FreeRunner

AUX Button and phone jack(From left to right)
Power Button, USB and external GPS Antenna (From left to right)
AUX Back side with battery
Put the SIM card and SD card here
open case from this side
Opened

Installing the Micro-SD card, the SIM card, and the Battery

  1. 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.
  2. Now you should be able to locate the combined SIM and Micro-SD card holder at the bottom of the battery compartment.
  3. 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.
  4. Lift up on the SIM card holder.
  5. 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.
  6. Insert the Micro-SD card into the Micro-SD card holder. Note that on the inside of metal part of the holder there are little holding tabs for the card. Slide the card in these holders (on the metal part) before closing the card holder. Note that the electrical contacts should face down and towards the edge of the Neo Freerunner.
  7. Close the Micro-SD card holder, making sure that both latches of the holder are securely fastened.
  8. Insert the SIM card into the SIM card holder, taking care to slide inside the two metal tabs in the cover. Note that the electrical contacts should face down and that the cut corner should be closest to the external GPS Antenna Socket.
  9. Close the SIM card holder and lock it by sliding the metal clip towards the external GPS Antenna Socket on the FreeRunner.
  10. 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.
  11. Replace the rear cover on the FreeRunner.
SIM and SD holders open, with cards in place

Charging the Neo Freerunner

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.

Charging at 100mA takes 6-12 hours and at 500mA takes 1-2 hours. (from openmoko.togaware.com)

The Buttons

Power

Tapping the power button exits the current application.

Holding the power button brings up a menu allowing you to power on and off the gps, wifi, gsm, and bluetooth antennae, and also to shutdown the device.

Aux

Holding the aux button for a second brings up a menu allowing you

  • Toggle Fullscreen: Hide and show the title bar
  • Swap Orientation: Rotate the screen contents for horizontal and vertical viewing
  • Screenshot: Start an application to save an image file of the current screen contents

Unlocking the screen

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.


Menus and Applications

Note: this section describes the interface used by the "2007.2" image, which is the current default image for Openmoko.

Today Page

Todaypage reduced false.png

The first thing after you boot Openmoko should be the "Today" page. This is your home page. In the top row, you see icons that indicate the status of the phone. The second row are quick links to commonly-used applications such as the dialer. The main body of the screen is your home page, displaying a clock and other useful information. The bottom row consists of three tabs representing Today (the page you're viewing now), Launch Task Page, and Running Tasks Page.

See Today/2007.2 for more information about the Today page and customization.


Launch Task Page

Stub: This is a stub. You can help OpenMokoWiki by expanding it.


This page displays a menu of available applications. You may choose a category of applications to display to simplify the screen, or choose to display them all.

Current categories are PIM Suite, Applications, Games, Utilities, and All.

Running Tasks Page

Stub: This is a stub. You can help OpenMokoWiki by expanding it.


This page displays currently-running tasks. Any individual task may be terminated by selecting it and then clicking on the garbage-can icon to close it. All tasks may be terminated by clicking on any one of them and then clicking on the "folder" icon in the upper right (expect this to change in future releases). Any task may be rejoined by selecting it and then selecting the "return" icon at the middle top.

Exiting an Application

Any time an application is running, you can simply click the device's power button and the application will exit, returning you to the Today page.

Alternatively, you can switch tasks at any time by clicking the menu of tasks at the far upper-left of the screen, which will display a list of running tasks, allowing you to select one.

(Note: If the task menu is not shown, use the Aux button to bring up the Aux menu, and select "Toggle Fullscreen".)

Adjusting the Volume

As of this writing, there is no way to adjust the volume from the screen.

For now, run the terminal application or log in via usb, and run the alsamixer application. The mixer is simpler than it looks. Just use the left and right arrow keys to select "headphone" or "PCM" and use the up and down arrow keys to adjust the volume. You can also adjust your microphone volume with the "mic2" adjustment. Press ESC when finished. Then exit the terminal application or log out of the USB login.

You may need to update configuration files in /usr/share/openmoko/scenarios/ to make the microphone setting permanent. Use

alsactl -f path-to-statefile store

to do this.

The default files are as follows (in /usr/share/openmoko/scenarios/):

gsmhandset.state
gsmheadset.state
gsmspeakerout.state
headset.state
stereoout.state

These correspond to the various Sound Profiles accessible in the Debug Tool under Applications.

Accessing the microSD card

Mounted at /media/card

Importing contacts

If you can export your contacts to VCard format, either multiple files or single file containing all of them, you may use the script on Import Vcf Contacts page to bring them to Neo.

Where to go when things go wrong

You may ask for help on the support mailing list : more details at https://lists.openmoko.org/mailman/listinfo/support

Freerunner_Hardware_Issues

Connect to the Neo FreeRunner By USB Networking

Connect the Neo FreeRunner to a GNU/Linux host with the USB cable. For Mac OS X please refer to MacOS_X. For Windows XP and Vista please refer to Neo1973_and_Windows (which also works for the FreeRunner). After booting into the Openmoko image there will be a new interface, usb0, on your GNU/Linux host.

Manual Method

Type in the following commands in the terminal of a GNU/Linux host:

ifconfig usb0 192.168.0.200 netmask 255.255.255.0
ssh root@192.168.0.202

Press Enter to get by the password.

Automatic Method
  • Debian and derivatives (Ubuntu, Sidux etc.)

Edit /etc/network/interfaces:

auto usb0
iface usb0 inet static
address 192.168.0.200
netmask 255.255.255.0
  • Gentoo

Edit /etc/conf.d/net:

config_usb0="192.168.0.200/24"

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:

ssh root@192.168.0.202

Press Enter to get by the password.

NOTE:

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

route add -host 192.168.0.202 dev usb0 


Making things even more automatic

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:

192.168.0.202   openmoko

Now it should be possible to connect to your phone using the following command:

ssh root@openmoko

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.

Allow FreeRunner to Connect to Internet via USB

For the FreeRunner to access the internet through the USB connection, you will also need to make modifications on the PC it is connecting through.

In Ubuntu:

Within /etc/network/interfaces, change your interface setup to this:

auto usb0
iface usb0 inet static
   address 192.168.0.200
   netmask 255.255.255.0
   network 192.168.0.0
   up iptables -A POSTROUTING -t nat -j MASQUERADE -s 192.168.0.0/24 &
   up echo 1 > /proc/sys/net/ipv4/ip_forward &
   up iptables -P FORWARD ACCEPT &
   down iptables -D POSTROUTING -t nat -j MASQUERADE -s 192.168.0.0/24 &

In Fedora:

Set /etc/sysconfig/network-scripts/ifcfg-usb0 to this:

DEVICE=usb0
IPADDR=192.168.0.200
NETMASK=255.255.255.0

Set /etc/sysconfig/network-scripts/ifup-usb to this:

#!/bin/bash

. /etc/init.d/functions

cd /etc/sysconfig/network-scripts
. ./network-functions

[ -f ../network ] && . ../network

CONFIG=${1}

need_config ${CONFIG}

source_config

NETBITS=`ipcalc -p ${IPADDR} ${NETMASK} | awk -F'=' '{print $2;}'`

/sbin/ip addr flush dev ${DEVICE} 2>/dev/null
/sbin/ip link set dev ${DEVICE} up
/sbin/ip addr add dev ${DEVICE} ${IPADDR}/${NETBITS}

/sbin/iptables -I POSTROUTING -t nat -j MASQUERADE -s ${IPADDR}/${NETBITS}
/sbin/sysctl net.ipv4.ip_forward=1
/sbin/iptables -I FORWARD -s ${IPADDR}/${NETBITS} -j ACCEPT
/sbin/iptables -I FORWARD -d ${IPADDR}/${NETBITS} -j ACCEPT

Set /etc/sysconfig/network-scripts/ifdown-usb to this:

#!/bin/bash

. /etc/init.d/functions

cd /etc/sysconfig/network-scripts
. ./network-functions

[ -f ../network ] && . ../network

CONFIG=${1}

need_config ${CONFIG}

source_config

NETBITS=`ipcalc -p ${IPADDR} ${NETMASK} | awk -F'=' '{print $2;}'`

/sbin/iptables -D FORWARD -d ${IPADDR}/${NETBITS} -j ACCEPT
/sbin/iptables -D FORWARD -s ${IPADDR}/${NETBITS} -j ACCEPT
/sbin/sysctl net.ipv4.ip_forward=0
/sbin/iptables -D POSTROUTING -t nat -j MASQUERADE -s ${IPADDR}/${NETBITS}

/sbin/ip link set dev ${DEVICE} down
/sbin/ip addr flush dev ${DEVICE} 2>/dev/null

If you are using NetworkManager, restart it and enable the usb device from its menu, otherwise it will disable your connection shortly after you enable it.

/sbin/service NetworkManager restart
Updating DNS

Once your PC is setup, then edit /etc/network/interfaces on your FreeRunner and modify the code from this:

iface usb0 inet static
       address 192.168.0.202
       netmask 255.255.255.0
       network 192.168.0.0
       gateway 192.168.0.200
       up echo nameserver 192.168.0.200 > /etc/resolv.conf

to something that points to a real name server, like a public DNS system from OpenDNS, like this:

iface usb0 inet static
       address 192.168.0.202
       netmask 255.255.255.0
       network 192.168.0.0
       gateway 192.168.0.200
       up echo nameserver 208.67.222.222 > /etc/resolv.conf
       up echo nameserver 208.67.220.220 >> /etc/resolv.conf

Note: vi appears to be the only text editor available by default. See basic vi commands for help.

On the factory loaded OM2007.2 image, run the following to restart networking for the DNS changes to take effect:

/etc/rc0.d/K40networking restart

If your LAN also has the subnet 192.168.0.0/24, you will need to do the following on your PC, as root, in order to allow your PC to access both the FreeRunner and other hosts:

route add -host 192.168.0.202 dev usb0
route del -net 192.168.0.0 netmask 255.255.255.0 usb0

More information (includes more specific instructions for Mandriva)

The Architecture

There are three layers to the software on the FreeRunner:

uBoot

Think of u-boot as a combination of the BIOS and Grub on a PC.

Kernel

The Linux kernel.

Root Filesystem

The rest of the system

Updating the software

In order to keep the FreeRunner up-to-date with the latest features and bug-fixes, it is advisable update the software at regular intevals. There are two main methods of doing this.

opkg

Assuming that your FreeRunner can access the internet (see above), the kernel and other packages can be updated with

# opkg update
# opkg upgrade

The first updates the repository information, telling opkg what packages are available. The second upgrades all packages for which a newer version is available. At the moment, some signature files are missing (404 errors), which opkg complains about, but this is cosmetic. The repositories will still update with the missing signature files.

It will be possible in the future to update uboot with opkg, but this has not yet been implemented

Flashing

uboot, the kernel and the root filesystem can all be flashed to update them. See below for how. For uboot, this is the only possibility. The advantage of flashing the kernel, rather than using opkg seems to be speed.

The disadvantage of flashing the root file system is that it wipes out all local modifications, including /home. If /home is moved to the SD disk, this is no longer a problem.

Un-crippling the 2007.2 image

The stock Openmoko2007.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:

# dbus-launch gconftool-2 -t boolean -s /desktop/poky/interface/reduced false
# /etc/init.d/xserver-nodm restart

If you rather have a regular clock instead of the digital one, do this instead:

# dbus-launch gconftool-2 -t boolean -s /desktop/poky/interface/reduced false
# dbus-launch gconftool-2 -t boolean -s /desktop/poky/interface/digital_clock false
# /etc/init.d/xserver-nodm restart

More information about today screen customization at Today/2007.2.

With either clock, you may wish to set the correct Date and Timezone.

Also, if you prefer having a full keyboard, see these instructions.

GPS

Simple guide to get going with GPS:

# opkg install gpsd
# echo "GPS_DEV=\"/dev/ttySAC1\"" > /etc/default/gpsd

and restart gpsd, the gps daemon, with

# /etc/init.d/gpsd restart

To test GPS, you can use agpsui:

# opkg install openmoko-agpsui

For a nice map, try tangoGPS:

# opkg install http://www.tangogps.org/downloads/tangogps_0.9.2-r1_armv4t.ipk

More information on GPS page.

GPRS

See Manually using GPRS. According to some posts, GPRS might be broken currently (2007.2), though. Any updates welcome.

WLAN

See GTA02 WLAN.

Recommended software

For a Media Player:

# opkg install openmoko-mediaplayer2
# wget http://abraxa.dyndns.org:81/random/openmoko-mediaplayer-theme.tar.bz2
# tar xjf openmoko-mediaplayer-theme.tar.bz2 -C /usr/share/themes/Moko/gtk-2.0
# rm openmoko-mediaplayer-theme.tar.bz2

If you want a basic image viewer, have a look at the one from the gpe suite:

# opkg install gpe-icons gpe-gallery

To obtain the standard web browser, use:

# opkg install openmoko-browser2

An alternative browser, minimo, offers many more features. First download and unpack it on your GNU/Linux host:

# wget http://www.ginguppin.de/files/minimo.tar.bz2
# tar jvxf minimo.tar.bz2

Copy it over to the FreeRunner:

# scp minimo_* root@openmoko:/tmp

Then on the FreeRunner:

# opkg install /tmp/minimo_0.02\+cvs20070626-r0_armv4t.ipk

There are tons more apps you can install - check out the Repositories for a list of packages.

Booting the Neo Freerunner

You can boot your Neo FreeRunner in the following ways:

Circle2.gif You can power it up into an Openmoko image directly (default, when powered-on for the first time).
Circle2.gif You can boot it into the U-Boot bootloader via NAND Flash.
Circle2.gif You can boot it into U-Boot via NOR Flash.

Booting the device into NAND and NOR Flash allows you to update the kernel and root filesystem.

Start the Openmoko Image

Menu2.jpg

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.

Log into U-Boot in the NAND Flash

Menu7.jpg

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.

Log into U-Boot in the NOR Flash

Menu6.jpg

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.

NOTE: There are six options you can choose when you log into the NOR Flash.

1. Boot

2. Boot from MicroSD

3. Set console to USB

4. Set console to Serial

5. Reset

6. Power off


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.


Flashing the Neo FreeRunner

As Openmoko development continues, Openmoko regularly releases updated versions of the Openmoko root filesystem, the kernel, and the 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.

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.

More about current Images: http://wiki.openmoko.org/wiki/Latest_Images


Step 1. Download the DFU-util

You can download the flashing tool from: http://downloads.openmoko.org/releases/Freerunner/dfu-util

On the GNU/Linux host you can use the following command to download the dfu-util:

wget http://downloads.openmoko.org/releases/Freerunner/dfu-util

Afterwards you have to change the rights on the file:

chmod a+x dfu-util

Step 2. Flashing the Kernel

Log into U-Boot in NOR Flash, connect your Neo with Linux Host via USB cable

Before you execute the following command, please log into U-Boot in the NOR Flash. The Neo FreeRunner needs to be at the NOR boot menu for flashing. You will then need to connect your Neo with the GNU/Linux host via USB cable.

You can download the kernel from http://downloads.openmoko.org/releases/Freerunner/

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 and on Ubuntu you must preface the command with "sudo" or you will get the following error: "Cannot claim interface: could not claim interface 2: Operation not permitted"

./dfu-util -a (partion name) -R -D (download image file name)

ex:

sudo ./dfu-util -a kernel -R -D uImage-2.6.24+git20080424-om-gta02.bin

Press Enter to execute the command.

When flashing succeeds the following will be shown:

status(0) = No error condition is present
Done!
NOTE: The meaning of the parameters you specified:

-a --alt alt Specify the altsetting of the DFU interface by name or by number
-R --reset Issue USB Reset signalling once we're finished
-D --download file Write firmware from<file> into device


Step 3. Flashing the Root Filesystem

You can download the root filesystem from: http://downloads.openmoko.org/releases/Freerunner/

Type the following command in the terminal of a GNU/Linux host. On some systems you will need to be root.

./dfu-util -a rootfs -R -D openmoko-devel-image-fic-gta02.jffs2

When flashing succeeds the following will be shown:

status(0) = No error condition is present
Done!

Appendix

If you want to know more about the Neo FreeRunner then you can get more information in the following topics:

To search this wiki with Google, use the following search term:

<search term> site:http://wiki.openmoko.org/wiki/
An excellent tool for searching all the openmoko mailing lists is http://openmoko.markmail.org/
Retrieved from "http://wiki.openmoko.org/index.php?title=Getting_Started_with_your_Neo_FreeRunner&oldid=40865"
Views
Personal tools


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.

Neo FreeRunner Package

The Package Contents

Inside package
Circle2.gif Neo FreeRunner
Circle2.gif Stylus
Circle2.gif Battery
Circle2.gif Charger
Circle2.gif USB Cable
Circle2.gif microSD Card 512MB & SD adapter

Getting To Know the Neo FreeRunner

AUX Button and phone jack(From left to right)
Power Button, USB and external GPS Antenna (From left to right)
AUX Back side with battery
Put the SIM card and SD card here
open case from this side
Opened

Installing the Micro-SD card, the SIM card, and the Battery

  1. 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.
  2. Now you should be able to locate the combined SIM and Micro-SD card holder at the bottom of the battery compartment.
  3. 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.
  4. Lift up on the SIM card holder.
  5. 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.
  6. Insert the Micro-SD card into the Micro-SD card holder. Note that on the inside of metal part of the holder there are little holding tabs for the card. Slide the card in these holders (on the metal part) before closing the card holder. Note that the electrical contacts should face down and towards the edge of the Neo Freerunner.
  7. Close the Micro-SD card holder, making sure that both latches of the holder are securely fastened.
  8. Insert the SIM card into the SIM card holder, taking care to slide inside the two metal tabs in the cover. Note that the electrical contacts should face down and that the cut corner should be closest to the external GPS Antenna Socket.
  9. Close the SIM card holder and lock it by sliding the metal clip towards the external GPS Antenna Socket on the FreeRunner.
  10. 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.
  11. Replace the rear cover on the FreeRunner.
SIM and SD holders open, with cards in place

Charging the Neo Freerunner

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.

Charging at 100mA takes 6-12 hours and at 500mA takes 1-2 hours. (from openmoko.togaware.com)

The Buttons

Power

Tapping the power button exits the current application.

Holding the power button brings up a menu allowing you to power on and off the gps, wifi, gsm, and bluetooth antennae, and also to shutdown the device.

Aux

Holding the aux button for a second brings up a menu allowing you

Unlocking the screen

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.


Menus and Applications

Note: this section describes the interface used by the "2007.2" image, which is the current default image for Openmoko.

Today Page

Todaypage reduced false.png

The first thing after you boot Openmoko should be the "Today" page. This is your home page. In the top row, you see icons that indicate the status of the phone. The second row are quick links to commonly-used applications such as the dialer. The main body of the screen is your home page, displaying a clock and other useful information. The bottom row consists of three tabs representing Today (the page you're viewing now), Launch Task Page, and Running Tasks Page.

See Today/2007.2 for more information about the Today page and customization.


Launch Task Page

Stub: This is a stub. You can help OpenMokoWiki by expanding it.


This page displays a menu of available applications. You may choose a category of applications to display to simplify the screen, or choose to display them all.

Current categories are PIM Suite, Applications, Games, Utilities, and All.

Running Tasks Page

Stub: This is a stub. You can help OpenMokoWiki by expanding it.


This page displays currently-running tasks. Any individual task may be terminated by selecting it and then clicking on the garbage-can icon to close it. All tasks may be terminated by clicking on any one of them and then clicking on the "folder" icon in the upper right (expect this to change in future releases). Any task may be rejoined by selecting it and then selecting the "return" icon at the middle top.

Exiting an Application

Any time an application is running, you can simply click the device's power button and the application will exit, returning you to the Today page.

Alternatively, you can switch tasks at any time by clicking the menu of tasks at the far upper-left of the screen, which will display a list of running tasks, allowing you to select one.

(Note: If the task menu is not shown, use the Aux button to bring up the Aux menu, and select "Toggle Fullscreen".)

Adjusting the Volume

As of this writing, there is no way to adjust the volume from the screen.

For now, run the terminal application or log in via usb, and run the alsamixer application. The mixer is simpler than it looks. Just use the left and right arrow keys to select "headphone" or "PCM" and use the up and down arrow keys to adjust the volume. You can also adjust your microphone volume with the "mic2" adjustment. Press ESC when finished. Then exit the terminal application or log out of the USB login.

You may need to update configuration files in /usr/share/openmoko/scenarios/ to make the microphone setting permanent. Use

alsactl -f path-to-statefile store

to do this.

The default files are as follows (in /usr/share/openmoko/scenarios/):

gsmhandset.state
gsmheadset.state
gsmspeakerout.state
headset.state
stereoout.state

These correspond to the various Sound Profiles accessible in the Debug Tool under Applications.

Accessing the microSD card

Mounted at /media/card

Importing contacts

If you can export your contacts to VCard format, either multiple files or single file containing all of them, you may use the script on Import Vcf Contacts page to bring them to Neo.

Where to go when things go wrong

You may ask for help on the support mailing list : more details at https://lists.openmoko.org/mailman/listinfo/support

Freerunner_Hardware_Issues

Connect to the Neo FreeRunner By USB Networking

Connect the Neo FreeRunner to a GNU/Linux host with the USB cable. For Mac OS X please refer to MacOS_X. For Windows XP and Vista please refer to Neo1973_and_Windows (which also works for the FreeRunner). After booting into the Openmoko image there will be a new interface, usb0, on your GNU/Linux host.

Manual Method

Type in the following commands in the terminal of a GNU/Linux host:

ifconfig usb0 192.168.0.200 netmask 255.255.255.0
ssh root@192.168.0.202

Press Enter to get by the password.

Automatic Method

Edit /etc/network/interfaces:

auto usb0
iface usb0 inet static
address 192.168.0.200
netmask 255.255.255.0

Edit /etc/conf.d/net:

config_usb0="192.168.0.200/24"

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:

ssh root@192.168.0.202

Press Enter to get by the password.

NOTE:

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

route add -host 192.168.0.202 dev usb0 


Making things even more automatic

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:

192.168.0.202   openmoko

Now it should be possible to connect to your phone using the following command:

ssh root@openmoko

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.

Allow FreeRunner to Connect to Internet via USB

For the FreeRunner to access the internet through the USB connection, you will also need to make modifications on the PC it is connecting through.

In Ubuntu:

Within /etc/network/interfaces, change your interface setup to this:

auto usb0
iface usb0 inet static
   address 192.168.0.200
   netmask 255.255.255.0
   network 192.168.0.0
   up iptables -A POSTROUTING -t nat -j MASQUERADE -s 192.168.0.0/24 &
   up echo 1 > /proc/sys/net/ipv4/ip_forward &
   up iptables -P FORWARD ACCEPT &
   down iptables -D POSTROUTING -t nat -j MASQUERADE -s 192.168.0.0/24 &

In Fedora:

Set /etc/sysconfig/network-scripts/ifcfg-usb0 to this:

DEVICE=usb0
IPADDR=192.168.0.200
NETMASK=255.255.255.0

Set /etc/sysconfig/network-scripts/ifup-usb to this:

#!/bin/bash

. /etc/init.d/functions

cd /etc/sysconfig/network-scripts
. ./network-functions

[ -f ../network ] && . ../network

CONFIG=${1}

need_config ${CONFIG}

source_config

NETBITS=`ipcalc -p ${IPADDR} ${NETMASK} | awk -F'=' '{print $2;}'`

/sbin/ip addr flush dev ${DEVICE} 2>/dev/null
/sbin/ip link set dev ${DEVICE} up
/sbin/ip addr add dev ${DEVICE} ${IPADDR}/${NETBITS}

/sbin/iptables -I POSTROUTING -t nat -j MASQUERADE -s ${IPADDR}/${NETBITS}
/sbin/sysctl net.ipv4.ip_forward=1
/sbin/iptables -I FORWARD -s ${IPADDR}/${NETBITS} -j ACCEPT
/sbin/iptables -I FORWARD -d ${IPADDR}/${NETBITS} -j ACCEPT

Set /etc/sysconfig/network-scripts/ifdown-usb to this:

#!/bin/bash

. /etc/init.d/functions

cd /etc/sysconfig/network-scripts
. ./network-functions

[ -f ../network ] && . ../network

CONFIG=${1}

need_config ${CONFIG}

source_config

NETBITS=`ipcalc -p ${IPADDR} ${NETMASK} | awk -F'=' '{print $2;}'`

/sbin/iptables -D FORWARD -d ${IPADDR}/${NETBITS} -j ACCEPT
/sbin/iptables -D FORWARD -s ${IPADDR}/${NETBITS} -j ACCEPT
/sbin/sysctl net.ipv4.ip_forward=0
/sbin/iptables -D POSTROUTING -t nat -j MASQUERADE -s ${IPADDR}/${NETBITS}

/sbin/ip link set dev ${DEVICE} down
/sbin/ip addr flush dev ${DEVICE} 2>/dev/null

If you are using NetworkManager, restart it and enable the usb device from its menu, otherwise it will disable your connection shortly after you enable it.

/sbin/service NetworkManager restart
Updating DNS

Once your PC is setup, then edit /etc/network/interfaces on your FreeRunner and modify the code from this:

iface usb0 inet static
       address 192.168.0.202
       netmask 255.255.255.0
       network 192.168.0.0
       gateway 192.168.0.200
       up echo nameserver 192.168.0.200 > /etc/resolv.conf

to something that points to a real name server, like a public DNS system from OpenDNS, like this:

iface usb0 inet static
       address 192.168.0.202
       netmask 255.255.255.0
       network 192.168.0.0
       gateway 192.168.0.200
       up echo nameserver 208.67.222.222 > /etc/resolv.conf
       up echo nameserver 208.67.220.220 >> /etc/resolv.conf

Note: vi appears to be the only text editor available by default. See basic vi commands for help.

On the factory loaded OM2007.2 image, run the following to restart networking for the DNS changes to take effect:

/etc/rc0.d/K40networking restart

If your LAN also has the subnet 192.168.0.0/24, you will need to do the following on your PC, as root, in order to allow your PC to access both the FreeRunner and other hosts:

route add -host 192.168.0.202 dev usb0
route del -net 192.168.0.0 netmask 255.255.255.0 usb0

More information (includes more specific instructions for Mandriva)

The Architecture

There are three layers to the software on the FreeRunner:

uBoot

Think of u-boot as a combination of the BIOS and Grub on a PC.

Kernel

The Linux kernel.

Root Filesystem

The rest of the system

Updating the software

In order to keep the FreeRunner up-to-date with the latest features and bug-fixes, it is advisable update the software at regular intevals. There are two main methods of doing this.

opkg

Assuming that your FreeRunner can access the internet (see above), the kernel and other packages can be updated with

# opkg update
# opkg upgrade

The first updates the repository information, telling opkg what packages are available. The second upgrades all packages for which a newer version is available. At the moment, some signature files are missing (404 errors), which opkg complains about, but this is cosmetic. The repositories will still update with the missing signature files.

It will be possible in the future to update uboot with opkg, but this has not yet been implemented

Flashing

uboot, the kernel and the root filesystem can all be flashed to update them. See below for how. For uboot, this is the only possibility. The advantage of flashing the kernel, rather than using opkg seems to be speed.

The disadvantage of flashing the root file system is that it wipes out all local modifications, including /home. If /home is moved to the SD disk, this is no longer a problem.

Un-crippling the 2007.2 image

The stock Openmoko2007.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:

# dbus-launch gconftool-2 -t boolean -s /desktop/poky/interface/reduced false
# /etc/init.d/xserver-nodm restart

If you rather have a regular clock instead of the digital one, do this instead:

# dbus-launch gconftool-2 -t boolean -s /desktop/poky/interface/reduced false
# dbus-launch gconftool-2 -t boolean -s /desktop/poky/interface/digital_clock false
# /etc/init.d/xserver-nodm restart

More information about today screen customization at Today/2007.2.

With either clock, you may wish to set the correct Date and Timezone.

Also, if you prefer having a full keyboard, see these instructions.

GPS

Simple guide to get going with GPS:

# opkg install gpsd
# echo "GPS_DEV=\"/dev/ttySAC1\"" > /etc/default/gpsd

and restart gpsd, the gps daemon, with

# /etc/init.d/gpsd restart

To test GPS, you can use agpsui:

# opkg install openmoko-agpsui

For a nice map, try tangoGPS:

# opkg install http://www.tangogps.org/downloads/tangogps_0.9.2-r1_armv4t.ipk

More information on GPS page.

GPRS

See Manually using GPRS. According to some posts, GPRS might be broken currently (2007.2), though. Any updates welcome.

WLAN

See GTA02 WLAN.

Recommended software

For a Media Player:

# opkg install openmoko-mediaplayer2
# wget http://abraxa.dyndns.org:81/random/openmoko-mediaplayer-theme.tar.bz2
# tar xjf openmoko-mediaplayer-theme.tar.bz2 -C /usr/share/themes/Moko/gtk-2.0
# rm openmoko-mediaplayer-theme.tar.bz2

If you want a basic image viewer, have a look at the one from the gpe suite:

# opkg install gpe-icons gpe-gallery

To obtain the standard web browser, use:

# opkg install openmoko-browser2

An alternative browser, minimo, offers many more features. First download and unpack it on your GNU/Linux host:

# wget http://www.ginguppin.de/files/minimo.tar.bz2
# tar jvxf minimo.tar.bz2

Copy it over to the FreeRunner:

# scp minimo_* root@openmoko:/tmp

Then on the FreeRunner:

# opkg install /tmp/minimo_0.02\+cvs20070626-r0_armv4t.ipk

There are tons more apps you can install - check out the Repositories for a list of packages.

Booting the Neo Freerunner

You can boot your Neo FreeRunner in the following ways:

Circle2.gif You can power it up into an Openmoko image directly (default, when powered-on for the first time).
Circle2.gif You can boot it into the U-Boot bootloader via NAND Flash.
Circle2.gif You can boot it into U-Boot via NOR Flash.

Booting the device into NAND and NOR Flash allows you to update the kernel and root filesystem.

Start the Openmoko Image

Menu2.jpg

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.

Log into U-Boot in the NAND Flash

Menu7.jpg

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.

Log into U-Boot in the NOR Flash

Menu6.jpg

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.

NOTE: There are six options you can choose when you log into the NOR Flash.

1. Boot

2. Boot from MicroSD

3. Set console to USB

4. Set console to Serial

5. Reset

6. Power off


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.


Flashing the Neo FreeRunner

As Openmoko development continues, Openmoko regularly releases updated versions of the Openmoko root filesystem, the kernel, and the 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.

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.

More about current Images: http://wiki.openmoko.org/wiki/Latest_Images


Step 1. Download the DFU-util

You can download the flashing tool from: http://downloads.openmoko.org/releases/Freerunner/dfu-util

On the GNU/Linux host you can use the following command to download the dfu-util:

wget http://downloads.openmoko.org/releases/Freerunner/dfu-util

Afterwards you have to change the rights on the file:

chmod a+x dfu-util

Step 2. Flashing the Kernel

Log into U-Boot in NOR Flash, connect your Neo with Linux Host via USB cable

Before you execute the following command, please log into U-Boot in the NOR Flash. The Neo FreeRunner needs to be at the NOR boot menu for flashing. You will then need to connect your Neo with the GNU/Linux host via USB cable.

You can download the kernel from http://downloads.openmoko.org/releases/Freerunner/

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 and on Ubuntu you must preface the command with "sudo" or you will get the following error: "Cannot claim interface: could not claim interface 2: Operation not permitted"

./dfu-util -a (partion name) -R -D (download image file name)

ex:

sudo ./dfu-util -a kernel -R -D uImage-2.6.24+git20080424-om-gta02.bin

Press Enter to execute the command.

When flashing succeeds the following will be shown:

status(0) = No error condition is present
Done!
NOTE: The meaning of the parameters you specified:

-a --alt alt Specify the altsetting of the DFU interface by name or by number
-R --reset Issue USB Reset signalling once we're finished
-D --download file Write firmware from<file> into device


Step 3. Flashing the Root Filesystem

You can download the root filesystem from: http://downloads.openmoko.org/releases/Freerunner/

Type the following command in the terminal of a GNU/Linux host. On some systems you will need to be root.

./dfu-util -a rootfs -R -D openmoko-devel-image-fic-gta02.jffs2

When flashing succeeds the following will be shown:

status(0) = No error condition is present
Done!

Appendix

If you want to know more about the Neo FreeRunner then you can get more information in the following topics:

To search this wiki with Google, use the following search term:

<search term> site:http://wiki.openmoko.org/wiki/

An excellent tool for searching all the openmoko mailing lists is http://openmoko.markmail.org/

Tools