Neo FreeRunner Tracking

Well, I have bought this FR kit for about almost one mounth. I'm planning to use it as a daily phone, which will be simply loaded with three system, tiny/develop/stable.

  • Tiny: It's a small system with most of the basic utilities.
  • Develop: It's a develop system, which might crash or un-stable.
  • Stable: As you can see, stable, right :-o daily phone

Note: I have bought a Kingston SDC4 8GB micro-SD :!:


How to access to Neo FreeRunner physically?

As a newbie to free runner, the most important thing is to get access to FR (Neo FreeRunner). Well, here is the first hand experience to get access to FR. 8-)

Install basic items to FR

IMO, FR can be used as both a Open-phone/Open-PDA, and the only difference between Open-Phone and Open-PDA is that whether you will use SGM module.

  • If Open-Phone, then you have to install an SIM card to the FR.
  • If Open-PDA, then I don't think SIM card is necessary to be installed.

Totally, there are about three items that you have to foucus, SIM card, micro-sd card, and battery, of course ^_^.

Note: If you choose a simple Open-PDA, then you might only need to install battery, if you don't care about disk space.

Here is normal steps from openmoko and quite detailed.


Fig 1. Prise off the rear cover


Fig 2. Openning FR case


Fig 3. Put the SIM card and SD card here


Fig 4. SIM and SD holders open, with cards in place

  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, Fig 1 and Fig 2.
  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, Fig 4.
  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.

Connector on FR

fr-power-usb-gps.jpg Fig 5. Power Button, USB and external GPS Antenna (left to right)

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
  • Change power management mode to:
    • Dim first then lock
    • Dim only, don't lock
    • Disabled
  • Lock the screen
  • Shutdown the device.

ASCII Fig 6. AUX Button and phone jack (left to right)

Tapping the Aux button hides or shows the currently running application.

Holding the Aux button brings up a menu allowing you to:

  • Hide and show the title bar (Fullscreen toggle)
  • Alternate wide or tall display modes (Swap Orientation)
  • Save the content of the screen as an image file (Screenshot)

Charging FR

This is easy, there are two basic way to charge your FR.

  • Use power adapter with USB cable directly connected with FR
  • Use power adapter, which can mount battery, shipped with FR
  • Use your PC with USB cable directly connected with FR
  • Use solar pannel with USB cable directly connected with FR

AFIAK, I'm quite sure that there is some to do with hardware spec. Anyway, I'll investigate this later. Cause I think power is one of the most important thing from the point of resource view.

How to access to Neo FreeRunner from PC?

I'm *NOT* going to cover OS, other then ubuntu 8.10 and ubuntu 8.04. Anyway, it's just a tracking page which I have went though. 8-)

If you are running other OS and met something strange, you can go openmoko wiki for questions. Hope this link will help.

Connect with FR with USB network

It's quit simple, as I write an urgly script to do all the job for me ;-)

Here, we go …

  • Connect FR to PC and wait about a minute if NetworkManager start scanning usb for dhcp.
  • Run below scripts ;-)
#! /bin/bash
sudo ifconfig usb0
sleep 2
sudo iptables -I INPUT 1 -s -j ACCEPT
sudo iptables -I OUTPUT 1 -s -j ACCEPT
sudo iptables -A POSTROUTING -t nat -j MASQUERADE -s
sudo bash -c 'echo 1 > /proc/sys/net/ipv4/ip_forward'
  • Now you can connect via ssh to
$ ssh root@

Well, have fun =)

Flash FR, u-boot, kernel, rootfs

Actually, you don't need to flash u-boot(Nor-Flash), as S3C2442 can boot right from Nand-Flash. If you wanna have an insight view of source code of u-boot and try some ideas, why NOT use Nand-Flash. In case, you boot code doesn't work, you can easily flash FR with the support from Nor-Flash.

It will cause quite a lot trouble to remove the font cover. And I have 2440 demo board, I won't try this to demonstrate my idea. And I'm quite interested in kernel/rootfs and 3D reconstruction application on special purpose ;-)

So here I'm going to track how to simple flash u-boot(Nand)/kernel/rootfs.

There are lots of ways to do this:

I like DFUScript most 8-)

Usage - (c)2008 Shawn 'prjktdtnt' Thompson
This program is Free Software and has ABSOLUTELY NO WARRANTY

Usage: device alternative file
  Accepted Devices:
  freerunner or fr - Neo Freerunner
  neo1973 or 1973 - FIC Neo1973

  Accepted Alternatives:
  kernel - Usually a file ending in .bin
  rootfs - Usually a file ending in .jffs2
  u-boot - Usually a file ending in .bin (see warning below)**

     **WARNING: Updating u-boot on the 1973 can brick your phone
           if the wrong image is used, please do not
          attempt this if you do not have a dboard!**

Flash FreeRunner

Flash the kernel

./ fr kernel kernelName.image.bin

Flash the rootfs

./ fr rootfs rootfsName.rootfs.jffs2

Flash the u-boot

./ fr u-boot version_name_of-u-boot.bin

Flash GSM Firmware

I have to say that GSM firmware really touble me a lot. For almost three days, I can't even dial a number out. 8-O Happy now, as I flashed latest GSM firmware. I don't know if there will be any update lately. But onething is for sure, just update to the latest stable one :-o

OK, here is the steps, let's make it as simple as possible:

  • Step 1: Make sure that you can ssh Neo FreeRunner, if you can't, please above section carefully.
  • Step 2: Make sure GSM module is shutdown.
    1. If you are using a console image, then it's disabled when reboot.
    2. If you are using zhone, please disable frameworkd and gsm0710muxd.
    3. If you are using SHR, please disable ophonekitd, frameworkd and gsm0710muxd.
  • Step 3: Power off the modem
root@om-gta02:~# echo 0 >/sys/bus/platform/devices/neo1973-pm-gsm.0/power_on
root@om-gta02:~# echo 1 >/sys/bus/platform/devices/neo1973-pm-gsm.0/power_on
root@om-gta02:~# s3c24xx-gpio b7=0
root@om-gta02:~# stty 0:4:18b2:8a00:0:0:7f:15:4:0:0:0:0:0:0:0:12:f:17:16:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0 -F /dev/ttySAC0
root@om-gta02:~# stty 0:4:18b2:8a00:0:0:7f:15:4:0:0:0:0:0:0:0:12:f:17:16:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0 -F /dev/ttySAC0
root@om-gta02:~# echo -en "AT@POFF\r" >/dev/ttySAC0; sleep 1; echo -en "AT@POFF\r" >/dev/ttySAC0
  • Step 4: Launch the FLUID binary
root@om-gta02:~# cd /usr/sbin
root@om-gta02:/usr/sbin# FLUID_PORT=/dev/ttySAC0 fluid.exe -oo -od13,13 -b 115200 -f $HOME/calypso-moko11.m0

It should say something like this (takes a few seconds to load the file):

FLUID Revision 2.27, ...
Bootloader: (reset target)
  • Step 5: Start a second SSH session and start the modem with below command.
root@om-gta02:~# s3c24xx-gpio b7=1
  • Step 6: wait for fluid to finish.
root@om-gta02 /usr/sbin $ FLUID_PORT=/dev/ttySAC0 fluid.exe -oo -od13,13 -b 115200 -f /home/root/calypso-moko11.m0
FLUID Revision 2.27, (23 Aug 2004). Copyright Texas Instruments, 2001-2004.
Reading image file: '/home/root/calypso-moko11.m0' (2138kB) ok
Bootloader: (reset target) 
(ROM, version ?) ok
Checksumming (269 * 8kB = 2152kB):  ok
Flash Detect: (0xEC, 0x22A0) Samsung K5A3240CT ok
Program: (34 sectors, 267*8k=2136k) (*******************) ok

Well, done! I did this without any error. If you find something strange, you maybe should visit this page at openmoko.

Neo FreeRunner Application

Note: You can visit home page to get a latest version. 8-)

$ opkg install
$ opkg install
  • Download OSM map easier with Yaouh
$ cd /etc/opkg
$ wget
$ opkg update
$ opkg install yaouh
$ opkg install

If you use the above command to install mumpot, it might be failed with following message, see below.

Installing mumpot (0.4-r0) to root...
Collected errors:
 * ERROR: Cannot satisfy the following dependencies for mumpot:
   *  gtk+-fastscaling (>= 2.10.14) *

It doesn't matter, if you have installed gtk packages. As you will won't find gtk+-fastscaling in opkg repository any more. Go on… then you will get a warning message instead of ERROR, see below.

$ opkg -force-depends install    
Installing mumpot (0.4-r0) to root...
Configuring mumpot
Collected errors:
 * Warning: Cannot satisfy the following dependencies for mumpot:
   *  gtk+-fastscaling (>= 2.10.14) * 
  • Support msn and qq protocol (pidgin)
$ opkg install libpurple-protocol-qq libpurple-protocol-msn libpurple-protocol-myspace
  • Neon is a simple image viewer. It's designed to be lightweight, fast, and easy to use.
$ opkg install

Chinese font issue

FR can't display Chinese character, cause there is some .ttf file missing. Ref: shr-sms-chinese-character-support

SHR: openmoko-shr-lite-image-glibc-ipk–20090417-om-gta02.rootfs.tar.gz

Kernel: uImage-2.6.29-oe10+gitr119792+81c61a7d1abb03aecd13f5395aba355e996a1641-r3.3-om-gta02.bin

$ tar -zxvf fireflysung-1.3.0.tar.gz
$ cp fireflysung.ttf /usr/share/fonts/truetype/
then reboot the FR.

download fireflysung (6.79 MiB, 12 downloads)

SHR desktop issue

SHR: openmoko-shr-lite-image-glibc-ipk–20090417-om-gta02.rootfs.tar.gz

Kernel: uImage-2.6.29-oe10+gitr119792+81c61a7d1abb03aecd13f5395aba355e996a1641-r3.3-om-gta02.bin

I found there is something wrong with my FR's destop icon(theme), see contacts/USB/Mump… in below image.

SMS message line feed issue

SHR: openmoko-shr-lite-image-glibc-ipk–20090417-om-gta02.rootfs.tar.gz

Kernel: uImage-2.6.29-oe10+gitr119792+81c61a7d1abb03aecd13f5395aba355e996a1641-r3.3-om-gta02.bin

I found that there is just one single line message. It seems that it losts line feed character.

opkg lock issue

$ opkg status --verbosity 5
Collected errors:
 * Could not obtain administrative lock

When interrupt opkg operation, lock will NOT be removed by the system. So we have to remove lock manually, with the following command.

$ rm /usr/lib/opkg/lock

Hope someone can fix it by program. :)

Compile Issue Tracking

Building Kernel

  • Before building this kernel you need install a Toolchain (27.01 MiB, 3 downloads).
  • Then get kernel source code.
$ mkdir GTA02 
$ cp ./arch/arm/configs/gta02_moredrivers_defconfig GTA02/.config
$ ./build GTA02

Once the script finishes you will get two files. The first is uImage-GTA02.bin and a second file with a longer name but same contents, for instance uImage-moredrivers-GTA02_andy-tracking_c16287685cb59f91.bin. Please use the second file if you publish your kernel in some server or if you talk about it in public (specially in bugs reports) because it will allow others to know what kernel you were trying (in case you don't have local changes).

In order to build the modules you can:

$ ./build GTA02 dummy

This will create a file called modules-GTA02_andy-tracking-<git hash>.tar.gz. The contents of this file have to be copied to /lib/firmaware and /lib/modules and one way to do it is untarring the file on the root directory of the device.

Power Management Unit

Well, due to Nokia BL-5C battery can't be charged on FR now, I decide to dig a little bit deep so that I can use it. I will keep digging … :-?

Set local time

Connect FR though USB and send below command from server.

$ ssh root@ "date -u -s `date -u +%m%d%H%M%Y.%S`"

Then ssh FR though USB and issue below command:

$ ln -sf /usr/share/zoneinfo/PRC /etc/localtime
 blog/daniel/neofreerunner.txt · Last modified: 2013/07/18 05:57 (external edit)
Except where otherwise noted, content on this wiki is licensed under the following license:CC Attribution-Noncommercial-Share Alike 3.0 Unported
Recent changes RSS feed Driven by DokuWiki