Neo freerunner

Once I received my Neo Freerunner, I logged into the openmoko wiki and setup

USB Networking on Ubuntu
Edit the file /etc/network/interfaces on your Ubuntu machine to look like this: (replacing 192.168.1.25 with your IP)

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 SNAT --to-source 192.168.1.25 & up echo 1 > /proc/sys/net/ipv4/ip_forward & up iptables -P FORWARD ACCEPT & down iptables -D POSTROUTING -t nat -j SNAT --to-source 192.168.1.25 &


 * 1) ifdown usb0 && ifup usb0

If that worked, you should now see something similar to:

$ ifconfig usb0 usb0     Link encap:Ethernet inet addr:192.168.0.200 Bcast:192.168.0.255  Mask:255.255.255.0

$ netstat -rn | grep usb0 192.168.0.0    0.0.0.0         255.255.255.0   U         0 0          0 usb0

$ ssh root@192.168.0.202 root@192.168.0.202's password:

hit enter and you should see: root@om-gta02:~#

Once connected, you will want to test your internet connectivity.


 * 1) nslookup buildhost.automated.it

If it resolves, you're off to the races. If not, you'll want to edit /etc/network/interfaces on your phone and change the line "echo 192.168.0.200" to "echo 192.168.1.1" (your favourite DNS server). Mine looks like this:

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

Initial SSH Connection
Once connected via ssh, these are the commands I ran, your mileage may vary:


 * 1) opkg update

As of July 23,2008 they don't seem to digitally sign their packages, so you will see errors for files that end with .sig If the files end with something other than .sig, you have other issues such as you can't connect to the internet.


 * 1) opkg upgrade

There were a couple of times I was prompted to merge files, I chose "I" to install maintainer's version, as the phone is new I've not yet edited anything myself so there is no risk of clobbering my changes.

Adding repositories
I chose to add the ScaredyCat and the Celtune-Rabenfrost repositories.


 * 1) cd /etc/opkg/
 * 2) wget http://buildhost.automated.it/scaredycat.conf
 * 3) wget http://rabenfrost.net/celtune/celtune-rabenfrost.conf
 * 4) vi celtune-rabenfrost.conf

and remove these two lines: src/gz celtune-fic-gta01 http://rabenfrost.net/celtune/ipk/fic-gta01 src/gz celtune-om-gta01 http://rabenfrost.net/celtune/ipk/om-gta01

save the file. Finally:


 * 1) opkg update

Adjusting the time

 * 1) opkg install tzdata tzdata-americas

You can replace americas with antarctica, arctic, asia, atlantic, australia, europe, pacific, posix, right.


 * 1) ln -sf /usr/share/zoneinfo/America/Vancouver /etc/localtime
 * 2) opkg install ntpdate
 * 3) ntpdate pool.ntp.org
 * 4) /etc/init.d/xserver-nodm restart

If the time looks correct now:


 * 1) hwclock --systohc

Adding helper applications
Add a filemanager, timesheet and todo list from ScaredyCat:


 * 1) opkg install gpe-filemanager gpe-timesheet gpe-todo
 * 2) /etc/init.d/xserver-nodm restart

Replace the default keyboard with missing characters, with a full keyboard that will require the stylus:


 * 1) opkg remove -force-depends multitap-pad
 * 2) opkg install matchbox-keyboard-inputmethod matchbox-keyboard-im matchbox-keyboard-applet

Get a list of available packages:


 * 1) opkg list

Adding internet applications
Install the openmoko web browser:
 * 1) opkg install openmoko-browser2

Install pigin for chat
 * 1) opkg install pidgin

Install nmap for port scanning
 * 1) opkg install nmap

Get GPS working

 * 1) opkg install gpsd openmoko-agpsui http://www.tangogps.org/downloads/tangogps_0.9.3-r1_armv4t.ipk
 * 2) echo "GPS_DEV=\"/dev/ttySAC1\"" > /etc/default/gpsd
 * 3) /etc/init.d/gpsd restart

Start the GPS program, and go stand in an open field for 10 minutes :)

Add wifi with WPA on Ubuntu
Edit your /etc/wpa_supplicant/wpa_supplicant.conf to look like this:

network={ ssid="your_ssid" proto=WPA key_mgmt=WPA-PSK pairwise=TKIP group=TKIP scan_ssid=1 psk="secret key" priority=10 }
 * 1) vi /etc/network/interfaces

When you see the line: iface eth0 inet dhcp add a line right underneath it: wpa-conf /etc/wpa_supplicant/wpa_supplicant.conf and save the file.

Now to try wifi: sed: unrecognized option `--quiet' BusyBox v1.11.1 (2008-07-18 00:49:01 CEST) multi-call binary Usage: sed [-efinr] pattern [files...] WPA: Configuring Interface ioctl[SIOCSIWENCODEEXT]: Operation not supported ioctl[SIOCSIWENCODEEXT]: Operation not supported ioctl[SIOCSIWENCODEEXT]: Operation not supported ioctl[SIOCSIWENCODEEXT]: Operation not supported udhcpc (v1.11.1) started run-parts: /etc/udhcpc.d/00avahi-autoipd exited with code 1 Sending discover... at this point my DHCP server responded with an IP. I now have wifi access! If you had issues, on the phone you can run
 * 1) ifdown eth0 && ifup eth0


 * 1) ifdown eth0 && ifup usb0

Adjust the microphone
Scroll down to control.48, and under 'Mic2 Capture Volume' change the value to 2 or 3
 * 1) vi /usr/share/openmoko/scenarios/gsmhandset.state

Adjustable display settings
To see a list of variables you can adjust:
 * 1) dbus-launch gconftool-2 -a /desktop/poky/interface

scp an image to /media/card called P123.jpg
 * 1) dbus-launch gconftool-2 --type string --set /desktop/poky/interface/wallpaper ./media/card/P123.jpg
 * 2) /etc/init.d/xserver-nodm restart

To see a large clock instead of a small:
 * 1) dbus-launch gconftool-2 --type bool --set /desktop/poky/interface/small_clock false
 * 2) /etc/init.d/xserver-nodm restart

Flashing
This assumes you have downloaded the images you wish to install, and have connected the USB cable to your computer. With the phone off, hold down the AUX button and then press the power button. You should see a screen that says something like: U-Boot 1.3.2 (May 9 2008) === BOOT MENU (NOR) === Boot Boot from microSD (FAT+ext2) Set console to USB Set console to serial Reboot Power off Press [AUX] to select, [POWER] to execute.

Once you see this screen you're ready to upgrade the kernel:

$ sudo ../dfu-util -a kernel -R -D ./uImage-om-gta02-latest.bin dfu-util - (C) 2007 by OpenMoko Inc. This program is Free Software and has ABSOLUTELY NO WARRANTY Opening USB Device 0x0000:0x0000... Found Runtime: [0x1d50:0x5119] devnum=52, cfg=0, intf=0, alt=3, name="kernel" Claiming USB DFU Interface... Setting Alternate Setting ... Determining device status: state = dfuERROR, status = 14 dfuERROR, clearing status Determining device status: state = dfuIDLE, status = 0 dfuIDLE, continuing Transfer Size = 0x1000 bytes_per_hash=35342 Starting download: [##################################################] finished! state(2) = dfuIDLE, status(0) = No error condition is present Done! Resetting USB to switch back to runtime mode

Then the filesystem:

$ sudo ../dfu-util -a rootfs -R -D ./Openmoko-Freerunner-20080424-om-gta02.rootfs.jffs2 dfu-util - (C) 2007 by OpenMoko Inc. This program is Free Software and has ABSOLUTELY NO WARRANTY Opening USB Device 0x0000:0x0000... Claiming USB DFU Runtime Interface... Determining device status: state = appIDLE, status = 0 Device really in Runtime Mode, send DFU detach request... Resetting USB... Opening USB Device... Found Runtime: [0x1d50:0x5119] devnum=55, cfg=0, intf=0, alt=6, name="rootfs" Claiming USB DFU Interface... Setting Alternate Setting ... Determining device status: state = dfuIDLE, status = 0 dfuIDLE, continuing Transfer Size = 0x1000 bytes_per_hash=807403 Starting download: [##################################################] finished! state(2) = dfuIDLE, status(0) = No error condition is present Done! Resetting USB to switch back to runtime mode

It looks like everything went as anticipated, reboot the phone!