Openmoko

Getting started a good advice for newbies like me...

Software releases (download areaRoadmap
QExtended IMPROVED and its Distribution  
more documentation you find in the openmoko wiki.

first steps

- get a real keyboard - more...
- Import-Export Contacts
- GPS online
- sounds / ringtone & Vibra
- WLAN
- MicroSD /media/card
- fill the addressbook with VCards
- SSH client-server DropBear
- Surfing...

LD_LIBRARY_PATH=/opt/Trolltech/Qtopia/lib ./webviewer http://www.ahammer.ch/
- Backup and Restore - NeoTool

flash

# ifconfig usb0 down
./dfu-util -l
./dfu-util -a kernel -R -D Om2008.9-gta02-20080916.uImage.bin
./dfu-util -a rootfs -R -D Om2008.9-gta02-20080916.rootfs.jffs2
or
../dfu-util -a kernel -R -D uImage-v13.bin
../dfu-util -a kernel -R -D uImage-v16.bin 
../dfu-util -a rootfs -R -D freerunner-v14.6.jffs2
../dfu-util -a rootfs -R -D qtmoko-debian-v16.jffs2 
or 
./dfu-util-r4160 -a kernel -R -D testing-om-gta02-20090120.uImage.bin 
./dfu-util-r4160 -a rootfs -R -D qt-extended-4.4.3-rootfs.jffs2
# rm -rf /opt/Trolltech/Qtopia/*
# tar -xzf qt-extended-4.4.3-bin-only.tar.gz -C /opt/Trolltech/Qtopia

linux

host

# ifconfig usb0 192.168.0.201 netmask 255.255.255.0 up
$ sudo /sbin/ifconfig usb0 192.168.0.201 netmask 255.255.255.0 up
$ ssh root@192.168.0.202

neo

/etc/network/interfaces
iface eth0 inet dhcp
  wireless-key ....
  wireless-essid ...
# iwlist eth0 scan
iwconfig eth0 key yourkeyhere
iwconfig eth0 essid yourssidhere
udhcpc eth0 
ifdown eth0 && ifup eth0

windows

rndis ethernet gadget driver and more

addressbook : MacOsX - QtExtended

On the Mac export VCF:
1. Set the vCard Format to 2.1 in the config dialog
2. Select all contacts and say "export vcard"
3. Despite having selected the charset to be utf-8 you may need to do:

$ iconv -f latin1 -t utf-8 vCards.vcf | sed s/CHARSET=LATIN1://g > all.vcf 
$ scp all.vcf root@192.168.0.202:/home/root

on ssh console

export DISPLAY=:0
LD_LIBRARY_PATH=/opt/Trolltech/Qtopia/lib /opt/Trolltech/Qtopia/bin/addressbook /home/root/all.vcf
QTMOKO
# export DISPLAY=:0
# LD_LIBRARY_PATH=/opt/qtmoko/lib /opt/qtmoko/bin/addressbook allcards.vcf
or
root@neo:~# source /opt/qtmoko/qpe.env
root@neo:/root# DISPLAY=:0 LD_LIBRARY_PATH=/opt/qtmoko/lib /opt/qtmoko/bin/addressbook allcards.vcf

restore calibration
after really messing up...

# rm /etc/pointercal

sqlite

# opkg install -nodeps sqlite3_3.5.6-r0_armv4t.opk
# opkg install libsqlite3-0_3.5.6-r0_armv4t.ipk
select * from sqlite_master;
select tbl_name from sqlite_master;
.exit
.table
.schema

how to delete a favorite

CREATE TABLE favoriteservices (
  id INTEGER primary key autoincrement,     
  sortIndex INTEGER,     
  speedDial INTEGER,     
  label VARCHAR(100),     
  icon VARCHAR(100),     
  service VARCHAR(100) NOT NULL,     
  message VARCHAR(255),     
  arguments BLOB,     
  optionalMap BLOB 
);
select * from favoriteservices;
delete from favoriteservices where id=x;

QT Extended Build

$ export QPEDIR=//home/ahammer/Desktop/Neo-Freerunner/build/qt-extended-4.4.2
$ cd build
$ $QPEDIR/configure -device neo -build-qt
$ bin/qbuild
$ bin/qbuild image

QI Bootloader

check NOR (recovery) and NAND (default) versions

root@om-gta02:~# grep  Bootloader /dev/mtdblock0
Neo1973 Bootloader U-Boot 1.3.2-moko12root
root@om-gta02:~# grep Bootloader /dev/mtdblock1
Neo1973 Bootloader U-Boot 1.3.2-rc2-dirty-moko12

after the switch to QI, the boottime is 2min 22sec - including the SIM-PIN - to a working phone

GPS basics

# echo "1" > /sys/bus/platform/devices/neo1973-pm-gps.0/pwron
# cat /dev/ttySAC1
# stty -F /dev/ttySAC1 -echo && cat -u /dev/ttySAC1 | grep -v ^$ 
# echo "0" > /sys/bus/platform/devices/neo1973-pm-gps.0/pwron

alle Datensaetze

$GPTXT,01,01,02,u-blox ag - www.u-blox.com*50
$GPTXT,01,01,02,$GPRMC,,V,,,,,,,,,,N*53
$GPVTG,,,,,,,,,N*30
$GPGGA,,,,,,0,00,99.99,,,,,,*48
$GPGSA,A,1,,,,,,,,,,,,,99.99,99.99,99.99*30
$GPGSV,1,1,00*79
$GPGLL,,,,,,V,N*64
$GPZDA,,,,,00,00*48
$GPRMC,,V,,,,,,,,,,N*53
$GPVTG,,,,,,,,,N*30 (Repetition)
ohne FIX

NMEA-0183 - Wikipedia - GPX - Exchange Format (samples) - nördliche Breite - östliche Länge

using this info - a path tracking shell script that produce a GPX-compatible file usable in Google Earth

mp3

First, install the codecs.qpk package. Till now I only managed to install it using http. Then in the application section - you find a codecs-installer. Hit it and install the libmad Plugin.
Make a copy on the SD-Card and restore it on updates - voila.

/opt/qtmoko/plugins/codecs/libwavplay.so
/opt/qtmoko/plugins/codecs/libwavrecord.so
/opt/qtmoko/plugins/codecs/libtremorplugin.so
/opt/qtmoko/plugins/codecs/libamrrecordplugin.so
/opt/qtmoko/plugins/codecs/libtimidityplugin.so
/opt/qtmoko/plugins/codecs/libmadplugin.so

performance optimizations

- disable X11 forwarding in /etc/ssh/sshd_config
- disable virtual terminals 2..5 in /etc/inittab
- disable all logging except /var/log/messsages & debug in /etc/syslog.conf
- enable lazy writing to logs using - in /etc/syslog.conf
- add nodiratime,noatime to mounted filesystems in /etc/fstab

Boot time using QTMoko v14 - 2min42sec between the poweron (vibration) till the phone is ready including entering pin and gsm search.
Update - QTMoko v24 - 1min43sec

powersaving...

Disable Bluetooth

echo 0 > /sys/class/i2c-adapter/i2c-0/0-0073/pcf50633-regltr.6/neo1973-pm-bt.0/power_on
in /etc/rc.local

links

openmoko.com
telepixel.ch