Results tagged “openmoko”

Finally, I have waited long enough to have binary driver for GPS available.

After installing it I wrote a small script which enables you to show GPS data on screen:

  • install gllin driver
  • ipkg install vte
  • install /home/root/ script below:

    if [ ! -z "$START_TERM" ] ; then


    echo "*** starting gllin"
    $gllin &
    sleep 3

    file="/media/card/`date +%Y-%m-%d`.$$"
    echo "*** creating log $file"

    cat /tmp/nmeaNP | tee $file

    killall gllin
    kill `ps ax | grep cat | grep nmea | awk '{ print $1 }'`

    DISPLAY=:0 /etc/init.d/xserver-nodm start


    /etc/init.d/gsmd stop
    echo 0 > /sys/bus/platform/devices/gta01-pm-gsm.0/power_on
    START_TERM=1 DISPLAY=:0 vte -c $0


  • create /usr/share/applications/gps.desktop icon so you can start GPS tracking from GUI:

    [Desktop Entry]
    Comment=GPS trace output

This combination will shutdown gsm part (to preserve power), create new trace file on /media/card/ and open terminal with output so you can see what is going on (openmoko-terminal2 doesn't want to accept commands, so you need to install vte for this to work. vte on the other hand doesn't accept any arguments, so we need hack with START_TERM environment variable. OOH, mrxvt crashes X server when you kill it so it wan't an option.


Happy GPS hacking...

OpenMoko flashing

Few days ago I decided to run ipkg update ; ipkg upgrade on my moko, and this didn't end up quite well. For a start, I managed to fill root filesystem, and while I tried to remove almost everything that I didn't use, I ended up with non-working unit.

Since I'm following qemu-neo1973 tree and testing images in emulator, I decided to re-flash with latest image. This proved to be very bad since latest image doesn't have gsm drivers, so moko dies on splash screen making device unusable (ssh isn't started at that point so I couldn't connect to it -- If I only had development board...)

Most interesting (and scary) thing were error messages from jffs2 which led me to beleve that my device has developed additional bad blocks. So, I started reading wiki and dumped my bad-blocks table (dump from u-boot prompt):

GTA01Bv4 # nand bad

Device 0 bad blocks:

Last four entries are bad-block table itself, but my device really has bad block. I wasn't able to access additional fields which would tell me if they are factory bad of developed in use...

Since I suspected that my device is completely broken (selecting factory default option in u-boot didn't help) I decided to try re-flash with different image. I went to wiki, selected another u-boot/boot/root images and flash them using following commands described in wiki:

dfu-util -a u-boot -R -D u-boot-gta01bv4-r12_0_2632_0.bin
dfu-util -a kernel -R -D uImage-
dfu-util -a rootfs -R -D OpenMoko-scaredycat-openmoko-devel-image-glibc-ipk-P1-Snapshot-20071118-fic-gta01.rootfs.jffs2

After a looong wait (it's a USB 1.1 device) I must report that I'm actually amazed by amount of progress. New home screen, working browser and media player!

openmoko-home.png openmoko-web.png openmoko-media.png

However, I still can't make any calls (this will take a bit more fiddling) and file dialogs are just unusable (too big and with too much options) and I still can't type on any screen orientation.

Google's announcement of Android platform provoked me to think about leaving OpenMoko on the shelf with other toys for which I don't have time any more, but when I saw new software upgrade I have to re-consider this.

  1. OpenMoko is here: I have the device, it exists in hardware
  2. qemu-neo1973 just got very good GSM emulator (you can select emulated GSM network, send messages and calls to emulated phone) which will probably bring GSM and SMS functionality to good shape real-soon-now(tm)

To replace my aging Nokia I need following:

  1. working phone (voice calls) - almost there, but not quite :-)
  2. SMS messaging - there is beginning of it in GUI, but no real functionality
  3. keyboard on which I can type with my big fingers

This brings me back to my plans: since I can't develop anything for GPS until there is binary (sigh!) driver available I would probably want to write almost full-screen 3*4 keyboard just like the one on regular cell phones. This would allow me to actually use device with my fingers.

I probably won't have time to scratch this itch in current year, so if there is anything similar (T9 implementation or even something similar to xstroke which worked well for me on Zaurus) I would love to hear about it.

OpenMoko as a phone

For quite a long time I was complaining (in person) how nice and half-usable my OpenMoko is. However, thanks to few great hints I'm now make a dial out and dial in.

First, you will really want to install cu package. It contains old UUCP serial tool which will be much more unseful than you might think! Think of cu as cat for console.

Turn on your OpenMoko (while holding AUX button) and type following:

chown uucp:uucp /dev/ttyACM0 ; cu -l /dev/ttyACM0

You might try to just run cu as root, but it still doesn't work (for me) without chown first. If someone could say me to make this automatic, I would be grateful. So, dear lazyweb, I'm quite sure that there is some udev option for that, and if you know what, drop me a note. If not, this might become topic for another post.

Then, change boot parametars:

GTA01Bv4 # setenv bootargs_base rootfstype=jffs2 root=/dev/mtdblock4 console=tty0 loglevel=8
GTA01Bv4 # saveenv                
Saving Environment to NAND...
Erasing Nand...Writing to Nand... done
GTA01Bv4 # boot               

NAND read: device 0 offset 0x44000, size 0x1fc000
2080768 bytes read: OK
## Booting image at 32000000 ...
Image Name: OpenMoko Kernel Image Neo1973(GT
Created: 2007-08-31 11:29:10 UTC
Image Type: ARM Linux Kernel Image (gzip compressed)
Data Size: 1637653 Bytes = 1.6 MB
Load Address: 30008000
Entry Point: 30008000
Verifying Checksum ... OK

This will disable output on serial console which in interfering with gsmd that tries to open serial port to communicate with GSM part.

This is my journey so far... Now I have to wait for my poor old desktop to compile all packages to get freshest copies on my Neo...

OpenMoko arrived

After four (4) weeks of waiting from the moment credit card has been charged, it finally arrived. It seems that shipping GSM-like devices to Croatia as person (as opposed to company) isn't something envisioned by Hrvatske agencije za telekomunikacije so we had to get additional papers (most of which I don't have) and in the end they settled with hardware specification of Neo1973 from OpenMoko wiki.

I must say that people all over the process where helpful and nice: we had to communicate much more with them then I hoped, but in the end it worked out o.k.

And now several obligatory pictures (hopefully not redundant :-)




After that I got rootfs flashed and I now have new (semi-functional) phone :-)

root@fic-gta01:~$ cat /proc/cpuinfo 
Processor       : ARM920T rev 0 (v4l)
BogoMIPS        : 132.71
Features        : swp half thumb 
CPU implementer : 0x41
CPU architecture: 4T
CPU variant     : 0x1
CPU part        : 0x920
CPU revision    : 0
Cache type      : write-back
Cache clean     : cp15 c7 ops
Cache lockdown  : format A
Cache format    : Harvard
I size          : 16384
I assoc         : 64
I line length   : 32
I sets          : 8
D size          : 16384
D assoc         : 64
D line length   : 32
D sets          : 8

Hardware : GTA01
Revision : 0240
Serial : 0000000000000000
root@fic-gta01:~$ free
total used free shared buffers cached
Mem: 126644 52604 74040 0 84 39100
-/+ buffers/cache: 13420 113224
Swap: 0 0 0
root@fic-gta01:~$ df
Filesystem 1k-blocks Used Available Use% Mounted on
/dev/mtdblock4 62576 42572 20004 68% /
tmpfs 40 0 40 0% /mnt/.psplash
/dev/mtdblock4 62576 42572 20004 68% /dev/.static/dev
tmpfs 2048 64 1984 3% /dev
tmpfs 63320 4 63316 0% /tmp
tmpfs 63320 116 63204 0% /var/volatile
tmpfs 63320 16 63304 0% /dev/shm
tmpfs 63320 0 63320 0% /media/ram
/dev/mmcblk0p1 495168 0 495168 0% /media/card

OpenMoko paid

Relevant parts:

This message has been automatically generated with regard to the
progress of your order at the OpenMoko online store (

Your credit card has now been charged by the following amount:

Subtotal: $300 USD
Shipping: $102.49 USD
Total: $402.49 USD

Please note that this amount might be less than what was originally
mentioned in the webshop, since we meanwhile got better shipping rates!

This means that we will now send out your order ASAP.

You will receive another status update once the order has been sent out.

Shipping is really less than first estimate of $147, and I'm waiting for second mail :-)

Finally OpenMoko is is available for order. So, I ordered mine yesterday. Still no confirmation e-mail, but let's be hopeful.

On a side note, on-line store yesterday didn't have selection of model (black/gray or white/orange) so I didn't made a pick. Today there is choice, but I somehow hope that mine will be black :-). But, it doesn't really matter...

People who know me shouldn't be surprised that I would buy a phone which real demonstration is answering a phone call from command line (on device which doesn't have a keyboard!) - just look at
this video from 1:15:00 or so and you will know why you really want this device :-)

Here are some of fun stuff which I would like to hack on:

  • record GPS route and on second occasion estimate arrival time (even integrate with calendar with option to send apology sms 5 minutes before time with estimate of your arrival :-)
  • make all kind of confirmations and informations using speech synthesis... I usually listen to podcasts so it would be real nice to have it mute and read you incoming sms
  • sms sorter, initial reason for buying a phone which can run perl
  • blue tooth keyboard - seems like no-brainer, but I don't really know much about blue tooth devices

I have been somewhat busy with other stuff in my life (including writing compressed filesystem using gzip with fuse -- but that is topic for another post), so I just managed to update my svn checkout of openmoko before by main build server started freezing again. Oh, it seems that constant kernel updates won't be enough to create stable development machine...

But, than I looked around and found out that I can have simple (emulated) openmoko environment by just installing qemu-neo1973. I went so far to install it on Toshiba Tecra with touch screen to get a feel for user interface. I can guess that hacking this device will be fun.