Languages: |
English • العربية • Български • Česky • Dansk • Deutsch • Esperanto • Eesti • Español • فارسی • Suomi • Français • עברית • Magyar • Italiano • 한국어 • Nederlands • Norsk (bokmål) • Polski • Português • Română • Русский • Svenska • Slovenčina • Українська • 中文(中国大陆) • 中文(台灣) • Euskara • Català |
QtMoko is a Debian based distribution for the Neo FreeRunner. The phone and user interface are based on Qt Extended Improved formerly known as Qtopia. The QtMoko wiki can be found here.
Further information on QtMoko and the current state of development can be found on http://www.qtmoko.org.
Download the following files from radekp download to you desktop computer:
This downloadable QtMoko-Image does not need the installation procedure of the following sections:
If you flash the FreeRunner with a kernel image from QtMoko, then you must install the kernel and the root file system with dfu-util.
NOTE: You need a fully charged Freerunner for installation. |
Installing QtMoko on your microSD Card depends on the Bootloader you are using, uBoot or Qi.
If you have Qi installed then you can install QtMoko on the SD card. This seems to be useful if you want to work with different distribution and you can change the distribution just by changing the Mirco SD card in your FreeRunner.
NOTE: Installation in NAND-Memory with Qi is possible without errors, but with an installed bootloader Qi the boot process will terminate (with Qi installed by Android, which is modified). Install a non-Android Qi version or u-Boot instead! |
If you use Qi, you only need an ext2 partition into your µSD Card where you uncompress the root filesystem image file qtmoko-debian-v26.tar.gz. In this case Qi Bootloader is going to look for the kernel image into the /boot directory for file named uImage-GTA02.bin .
If you have Qi or Android (with a modified Qi) installed on your Freerunner then install u-boot again as a bootloader by downloading a u-boot-binary on http://downloads.openmoko.org/distro/unstable/daily/ otherwise the boot process will terminate and you have to install u-Boot.
All versions of the GTA02 (Neo FreeRunner) that have been sold to the public are version 5 hardware, so look for a file with "gta02" and "v5" in the name, for example: u-boot-gta02v5-1.3.1.bin (linked U-Boot-Version from 31.Jan 2010):
sudo dfu-util -a u-boot -R -D u-boot-gta02v5-1.3.1.bin
Switch off your FreeRunner and press the AUX and Power-On button at the same time. Your FreeRunner is showing the following U-Boot Menu:
*** BOOT MENU (NOR) ***
Boot Boot from Mirco SD (FAT/ext2) Set Console to USB Set Console to Serial Reboot Power Off
The FreeRunner will stay in this mode for only 30 sec. Within this time you have to start dfu-util. If you want to flash the kernel image (you will need to be root on your PC) then you have to start the following command in the 30sec your see the BOOT MENU (use kernel and rootfs from http://sourceforge.net/projects/qtmoko/files/):
# for the Neo FreeRunner: dfu-util -d 0x1d50:0x5119 -a kernel -R -D uImage-v24.bin
and finally the root fs with this one:
# for the Neo FreeRunner: dfu-util -d 0x1d50:0x5119 -a rootfs -R -D qtmoko-debian-v24.jffs2
192.168.0.202 openmoko
After finishing the installation without errors you have to start the FreeRunner and calibrate the touch screen. Then you see the installed QtMoko on your device.
If you want to login to your FreeRunner set up a network connection (see USB Networking) with USB cable and start:
desktop# ssh -X -l root 192.168.0.202
The root password is empty so set it for security reason especially when you open the ssh-daemon on the WLAN network interface. Define root password as usual on a linux box with
neo# passwd
If you have established the internet connection via USB cable then update the repository data:
neo# apt-get update
If you want to check if the internet connection is available on your freerunner ping the OpenMoko web server with:
neo# ping 88.198.93.221 neo# ping wiki.openmoko.org
If the first ping works and the second doesn't then check the DNS server settings (see USB Networking).
Set the time and date on from your linux box with
ssh root@openmoko "date -us @`date -u +%s`"
sync the hardware clock with the system time to make your change persist over reboots:
# hwclock --systohc DOES NOT WORK - no access to Hardware Clock
If you want to set the time with a NTP Client install the following package, if you have a network connection available (see USB Networking)
# apt-get install ntpdate # ntpdate-debian
For further detail see Setting Date and Time.
If you want to install e.g. Twinkle and Navit on QtMoko the size of internal NAND memory is not sufficient (Twinkle need > 100MB). By creating symbolic links some memory problems can be avoided.
NOTE: (Size Root Filesystem) Create symbolic links from root file system to SD-card to save internal memory.If some folders are symb-linked to SD-Card (with e.g. ext2 partition), e.g.
# mkdir /media/card/share # mkdir /media/card/share/navit # ln -s /media/card/share/navit /usr/share/navit It recommended to use an ext2-partition. After creating symb-links install software. |
Consider installing QtMoko on MircroSD instead with Qi, if you want to make use of debian applications that exceed NAND memory capacity.
If you want to login to your FreeRunner set up a network connection (see USB Networking) with USB cable and start:
desktop# ssh -X -l root 192.168.0.202
or if hostname is defined in /etc/hosts
desktop# ssh -X -l root openmoko
If you want to install applications (e.g. myapplication) login on your freerunner
# apt-get install myapplication
Replace myapplication by the package name of application name you want to start, e.g. if you want to install the command line editor vim.
# apt-get install vim
Navit installation uses Festival Lite for Speech synthesis look for the following string in navit.xml:
flite -t "%s"
If you want to install e.g. the application Navit, you have to install the following packages. Navit needs and X-Server and it will run under QX.
# apt-get install apt-utils # apt-get install flite # apt-get install unzip
The zip-package is necessary to unzip the navit-qtm.zip package.
# cd /media/card # mkdir download # cd download # wget http://www.openmobile.nl/media/download_gallery/navit-qtm.zip # cd /
During unzip you will be asked to replace /opt/qtmoko/bin/ppp-network. This has to be done to solve problems with DNS over GPRS. Backup ppp-network file before unzipping navit-qtm.zip.
# cp -p /opt/qtmoko/bin/ppp-network /opt/qtmoko/bin/ppp-network.bak # unzip /media/card/download/navit-qtm.zip # rm /media/card/download/navit-qtm.zip
Unzipping the file will overwrite the following files too:
/opt/qtmoko/etc/qx/favourites.conf /opt/qtmoko/etc/qx/profiles.conf
NOTE: Unzip extracts and overwrites the network settings files mentioned above. Due to this fact the usb0 MAC address changes for the USB connection to your freerunner. E.g. under Ubuntu 10.04 the new network interface for usb0 has to configure again |
Now you have to restart your Freerunner, but you can also try from the command line of your neo:
# echo 1 > /proc/sys/vm/overcommit_memory
After restart you can start Navit under QX.
Create a folder MapsNavit on your SD card
# mkdir /media/card/MapsNavit
The navit QT package navit-qtm.zip from http://www.openmobile.nl the navit.xml is predefined for benelux maps and will try to load osm_benelux.bin that should be store at
/media/card/MapsNavit/osm_benelux.bin
If you want to use map for another country you can just store a downloaded Navit-Map in that folder and rename it osm_benelux.bin. If the map name should make sense, then you have to edit the navit.xml. See Navit-manual for details. You can find the navit.xml at:
# /usr/share/navit/navit.xml
Create the folder .navit in the home directory on your FR and copy navit.xml to directory:
# cd ~ # mkdir .navit # cp /usr/share/navit/navit.xml .navit/navit.xml
If you have the editor vim installed then edit the file at line 376 approx.:
# vim ~/.navit/navit.xml
If you have downloaded the file germany.bin your mapset-tags should look like this:
<!-- Mapset template for openstreetmaps --> <mapset enabled="yes"> <map type="binfile" enabled="yes" data="/media/card/MapsNavit/germany.bin"/> </mapset>
NOTE: Both MAPSET and MAP have to be enabled to work with the OSM-map in Navit. |
QtMoko has an integrated VoIP-Client, which would be perfect to use a SIP-Account to do free of charge mobile communication world wide. But at the moment the integrated VoIP-Client does not work, due to some strange problems in Version v24 (see QtMoko-Wiki for current status of development).
Android on Freerunner has an integrated SIP-Client SipDroid that has strange audio problems as well (see http://sipdroid.org ). Maybe there is an underlying problem the
have in common.
See Twinkle for further details or the official Website http://www.twinklephone.com/
apt-get install twinkle
For installation of Twinkle your need 105MB. It would be necessary to install QtMoko on MircoSD.
Error: Installation of Twinkle with apt-get stops with errors (Test: 19.11.2010) |
You can use Linphone (http://www.linphone.org) instead, which will use 83MB.
apt-get install linphone
See additional information on the QtMoko-Linphone or the OpenMoko-Linphone pages.
As visible on QtMoko-Wiki Syncing Calendar data is not working at the moment. Some work has be done (Thanks to mossroy), so that iCal-Files (ics) can be imported to your QtMoko calendar via a perlscript ics2qtcal.pl. Choose the current version from http://mossroy.free.fr/ics2qtcal/.
The main job of the scripts are:
The following installation script
#!/bin/sh vUser="myusername" vPWD="mypassword" vICS1="https://www.example.org/caldav/calendar1.ics" vICS2="https://www.example.org/caldav/calendar2.ics" remotesync4ics2openmoko.sh -u $vUser -p $vPWD $vICSl $vICS2
Please edit the file syncal and modify the username and password for accessing ics-file on a remote groupware server, where your iCal-file is stored.
#!/bin/sh # INSTALL SCRIPT FOR ICS2QTCAL # ---------------------------- # Edit the following variable for a new versions vURL="http://mossroy.free.fr/ics2qtcal/v0.4" cd /usr/local/bin wget "$vURL/ics2qtcal.pl" wget "$vURL/ics2qtcal.sh" wget "$vURL/deleteqtcalappointments.pl" wget "$vURL/install_dependencies.sh" wget "$vURL/remotesync4ics2openmoko.sh" wget "$vURL/sync4ics2openmoko.sh" sh ./install_dependencies.sh rm ./install_dependencies.sh chmod u+x *.sh # insert synccal in QX-favourites and make backup of old favourites.conf cd /opt/qtmoko/etc/qx/ cp ./favourites.conf ./favourites.conf.$$ cat ./favourites.conf.$$ | sed 's/list=/list=synccal, /g' | favourites.conf echo "generate synccal.desktop" vSyncCal="/usr/share/applications/synccal.desktop" echo "[Desktop Entry]" > $vSyncCal echo "Version=1.0" >> $vSyncCal echo "Name=SyncCal" >> $vSyncCal echo "Name[de]=SyncCal" >> $vSyncCal echo "Name[fr]=SyncCal" >> $vSyncCal echo "Comment=Syncing remote and local ics-file into Qt-Calendar." >> $vSyncCal echo "Comment[de]=Script fuer den Import von ics-Dateien" >> $vSyncCal echo "Exec=synccal" >> $vSyncCal echo "Icon=synccal" >> $vSyncCal echo "StartupNotify=true" >> $vSyncCal echo "Terminal=false" >> $vSyncCal echo "Type=Application" >> $vSyncCal echo "Categories=GTK;Utility;Dialog;" >> $vSyncCal echo "GenericName=SyncCal" >> $vSyncCal echo "GenericName[de]=SyncCal" >> $vSyncCal # Done synccal.desktop ---------- echo "Generate syncal" vSyncCal="/usr/local/bin/syncal" echo "#!/bin/sh" > $vSyncCal echo "vUser=\"myusername\"" >> $vSyncCal echo "vPWD=\"mypassword\"" >> $vSyncCal echo "vICS1=\"https://www.example.org/caldav/calendar1.ics\"" >> $vSyncCal echo "vICS2=\"https://www.example.org/caldav/calendar2.ics\"" >> $vSyncCal echo "remotesync4ics2openmoko.sh -u $vUser -p $vPWD $vICSl $vICS2" >> $vSyncCal chmod u+x $vSyncCal
The script adds a syncal to QX-favourites and creates a desktop-definition file
/usr/share/applications/syncal.desktop
because without the desktop-definition file an application will not be visible in QX-favourites.
After installation you have to edit the file
/usr/local/bin/synccal
with your confidential username, password and file URL for the remote ics files. You can import more than one remote ICS-files, so 2 variables for file URLs are defined. Change that to your appropriate number of remote ICS-files. See remotesync4ics2openmoko.sh for further details. If you do not want to store the password in the script for security reasons you can use xdialog for entering the vPWD via user interface (e.g. input box).
If you want to setup your own groupware server for testing on your own Linux Box, you can try CitaDel. Accessing the remote ics-file are explained on the homepage of http://www.citadel.org.
Evolution stores the calendar data in the iCal-file calendar.ics. So you might to use the files directly.
If you running Evolution on you Linux-Box you can use SSHFS to mount the directory of Evolution in homedirectory e.g. in
/home/username/.evolution/calendar/local/system
You can use the iCal-file directly by mounting the directory mentioned above on the Freerunner. Now you can used the calendar.ics from the Linux-Box, if you mount the directory in (replace username by your account on your Linux-Box):
/mnt/remoteics
on your Freerunner.
# mkdir /mnt/remoteics # sshfs username@example.com:/home/username/.evolution/calendar/local/system /mnt/remoteics
Now you can use the file calendar.ics directly:
/mnt/remoteics/calendar.ics
The scripts of Mossroy must be modified for this, because the scripts use wget to download the ics-files.
You might prefer some applications and you use them more frequent. Then you might want them to add to your favorites.
Then you will have this Icon in the favorites menu (yellow star in main menu) too.
A bit more difficult (i.e. more hidden in QtMoko) is to delete icons from the favorites menu.
For adding Favourites in the X-Server environment see QX.
The Media-Player will expect audio MP3-file in the directory:
/home/root/Documents/audio/mpeg
If want to store several MP3-file on your freerunner create a symbolic link of audio to your SD-card:
neo# mkdir /media/card/audio neo# mkdir /media/card/audio/mpeg ln -s /media/card/audio /home/root/Documents/audio
Store MP3-files in /media/card/audio/mpeg
During the installations above, the following problem occured:
When encouter a GdK-Warning using Xdialog in scripts you can remove the warning with sed.
sed 's/Gdk-WARNING ... locale not supported by C library//g
This warning is part of the return string of an inputbox in xdialog.
NOTE: This application sed is a workaround. The best solution is a modifacition that removes the GdK-warning itself. |
Embedded in a script sed will remove the warning from the input string. A example script (modified from http://xdialog.free.fr) will work like this:
#!/bin/sh Xdialog --title "INPUT BOX" \ --inputbox "Enter URL:" 18 45 \ "http://www123.Example-Test.com" 2> /tmp/inputbox.tmp.$$ retval=$? input=`cat /tmp/inputbox.tmp.$$` rm -f /tmp/inputbox.tmp.$$ input=`echo $input | sed 's/Gdk-WARNING ... locale not supported by C library//g'` # remove invalid character from URL input=`echo $input | sed 's/[^a-zA-Z1-9\/:\. \-]//g'` case $retval in 0) echo "Input string is '$input'";; 1) echo "Cancel pressed.";; 255) echo "Box closed.";; esac
To test this script on your freerunner, you have to start it from the terminal in QX. Source of the xdialog script is used from http://xdialog.free.fr.
[Apt-Get] (jffs2) Couldn't make mmap ...: (solved with the following workaround) If that happens regularly, create two scripts apt-start and apt-stop. These scripts are used before and after apt-get use.
# vi /bin/apt-start
#!/bin/sh mount -t tmpfs none /var/cache/apt mkdir -p /var/cache/apt/archives/partial apt-get update echo "apt-get can now be used" echo "stop with apt-stop"
chmod u+x /bin/apt-start
# vi /bin/apt-start
#!/bin/sh umount /var/cache/apt echo "Now old settings for apt-get are restored"
chmod u+x /bin/apt-stop
If you to install software use the scripts before and after apt-get call:
apt-start apt-get install mysoftware apt-stop
Replace mysoftware with the package you want to install e.g. linphone.