Archive for the ‘openmoko’ Category

* bitbake and proxy

Posted on June 20th, 2009 by Alex. Filed under Linux, openmoko.

Currently interns are trying to use bitbake to create an openembedded image for the beagle board. After setting up everything according to the step-by-step instructions, they run into a major problem: the proxy of the Indian Institute of Science.
bitbake uses wget to download the necessary packages. To tell wget that is has to send all requests to the proxy, environment variable are set:

export http_proxy=”″
export ftp_proxy=”″

However if wget is executed by bitbake to download a missing package, the environment variables are gone and wget tries to connect to the HTTP servers directly. A search in the Internet for that particular problem was not successful. A workaround (and not a solution) is to export the variables again, before wget is executed. Changing the recipes might be a never ending task. An easier way is to change the wget executable itself:

  1. Open a terminal and type cd /usr/bin/. If the file is not there, you can use which wget to figure out, where it is hidden.
  2. mv wget wget.executable (for this you need root permission, getting them by either executing sudo (Ubuntu) or by becoming root with su).
  3. Open an editor of your choice and type:

    echo “Using alternative wget…”
    export http_proxy=”″
    export ftp_proxy=”″

    /usr/bin/wget.executable $@

  4. Save this file as wget in /usr/bin/ (for that you need to be root again).
  5. Change the permission for this file by entering chmod +x wget in the terminal (also as root).
  6. Execute bitbake as usual. The echo directive just prints out a message, so you can check, if bitbake is taking the right executable.

I hope, it helps and saves you some time.


* tips and tricks for shr on freerunner

Posted on April 22nd, 2009 by Alex. Filed under openmoko.

In this post I would like to collect some tips and tricks copied from the Shr-devel mailing list so that I do not have to search everytime for a solution in the list. Basically I started to collect links to solutions for problems, I experienced so far and I though, it might be useful for others too. This list might change over the time or get expanded. I will try to remove old tricks and tips which do not apply to the current testing branch anymore. But if you found an outdated entry, let me know.

  1. Incoming SMS are not displayed.
    mdbus -s org.freesmartphone.ogsmd /org/freesmartphone/GSM/Device org.freesmartphone.GSM.SIM.RetrieveMessagebook 'all' which marks them all as read, so that they can be displayed.
  2. No icons in Illume.
    Check in /usr/share/applications/ the category of the *.desktop files. It should be Applications.
  3. AUX button does not lock display.
    Have a look into the illume settings (wrench in the shelf) -> Input -> Key Bindings and bind the AUX button to “Desktop Simple Lock”.
  4. Mofi does not show any networks.
    Activate Wifi in the settings first.
  5. When I receive a call, it takes several seconds after hitting the “Accept” button before the call is actually accepted.
    There is some delay in the framewark. There is no workaround currently. However it can be eased a little bit by using ringtone encoded in WAV (e.g. Mono, 11025Hz) which reduces the delay. Place the ringtone in /usr/share/sounds and select it in Settings -> Profiles.

    To convert a WAV file to Mono open it in e.g. Audacity (Tracks -> Stereo to Mono) and save it. Use mplayer -vo null -vc dummy -af volume=10,resample=11025:0:1 -ao pcm:waveheader:file="outputFile.wav" "inputFile.wav" to set the sample rate and to change the volume.

  6. Volume of caller is too low.
    Have a look into this post.
  7. How to backup the NAND before trying out a new release?
    Have a look here. However it might be difficult to access the jffs image in case you need a configuration file. So it is a good idea to backup /etc and self written programs in /usr/bin to a separate tar file to ease the access.
  8. TangoGPS does not download tiles from Google Maps.
    The wiki of openmoko describes a solution.
  9. Enlightenment constantly consumes 20% CPU.
    Delete the dropshadow directory in usr/lib/enlightenment/modules/ and acknowledge the error message after executing /etc/init.d/xserver-nodm restart
  10. In the current unstable release (20090617) the scenarii (scenarios) are not in /usr/share/openmoko/scenarios/, but in /usr/share/shr/scenarii/. The setting for the directory can be found in /etc/frameworkd.conf.
  11. opkg crashes with a Segmentation fault.
    Shut down the X server with /etc/init.d/xserver-nodm stop to free up memory. As alternative or if it still crashes, consider to provide a swap file or swapt partition on the uSD card.
  12. phonelog crashes
    If you start phonelog in the terminal and get something like this (after export DISPLAY=:0):

    phonelog Phonelog
    Initialized global vars
    Initializing gtk interface
    Showing main window
    Traceback (most recent call last):
    File “/usr/bin/phonelog”, line 741, in
    File “/usr/bin/phonelog”, line 191, in populateList
    print “There’s a corruption in the DB, empty phone number!” + “(” + call[4] + “)”
    TypeError: cannot concatenate ‘str’ and ‘int’ objects

    You can replace all call[4] occurrences with str(call[4]) in /usr/bin/phonelog to figure out the empty phone number. After that you can delete the problem causing entry from the data base.
    If that is too much work and you do not care about the content of the data base anyway, you can also delete rm /var/db/phonelog.db and either restart the phone or ophonekitd.

  13. Provider information (Service Data) is not displayed.
    Some providers send a message through the network stating, how much was the cost of the last call or SMS and how much balance is left (if prepaid). However it seems that sometimes this message comes and sometimes it does not. However, if the balance is checked after booting the phone and registering to the network (that is forcing this kind of message), the message is received after every call/SMS.
  14. To check the currently used scenario, you can use this quick and dirty script. Download it to your phone, make it executable (chmod +x and execute it in the state, you want to figure out (e.g. during a call) by typing ./ in the terminal.
  15. A new black/green theme has been created. It is much faster than the original SHR theme, since many fancy icons have been removed from it. Installation manual and download.
  16. To change the brightness of the backlight by script, do a echo <brightnessLevel> > /sys/class/backlight/gta02-bl/brightness with <brightnessLevel> between 0 (darkest = off) and 255 (brightest).
  17. To prevent the Freerunner from suspending while e.g. tangoGPS is running, copy this script into /usr/bin and change the Exec entry in /usr/share/applications/tangogps.desktop to
  18. If you are curious where the module for shr-settings are located to derive some hints to configure the system with your own scripts, have a look in /usr/lib/python2.6/site-packages/shr_settings_modules/
  19. Currently there is a bug in my shr-settings: I cannot change the ringtone nor its volume. To change these settings manually, edit the file in /etc/freesmartphone/opreferences/conf/phone/ring.yaml


* reducing display brightness freerunner at boot up

Posted on April 17th, 2009 by Alex. Filed under openmoko.

When the Freerunner of Openmoko boots, the display is very bright sucking out the battery or making you blind in the night 😉 The brightness can be reduced by the command

echo 80 > /sys/class/backlight/gta02-bl/brightness

I put this line into the file /etc/rc.local and set a link S99rc.local to it in /etc/rcS.d to execute it automatically (do not forget to make the file executable with chmod +x rc.local). A little script adjusting the brightness depending on the date time or at the users wishes would be nice. Currently the display is hardly visible in bright Indian sunlight.


* increase the volume of calls on freerunner

Posted on April 17th, 2009 by Alex. Filed under openmoko.

In all distributions available for the Freerunner of Openmoko, I experienced calls at a very low volume making it impossible to understand the one at the other end in loud environments. I am not talking about very loud environments like a Heavy Metal concert or the platform at the train station. In normal surroundings the voice of the caller simply vanished into the noise sometimes.

Fortunately on FSO based distributions such as the SHR, there is a solution. I know that also Openmoko 2008.12 offers this option as a comfortable regulator during the talk, but I do not know, hoe and if it works. It is possible to access the amplifier of the GSM chip boosting the audio signal. In FSO you can access it through this simple python example:

#!/usr/bin/env python
import dbus

#– access dbus
bus = dbus.SystemBus()

gsm_device_obj = bus.get_object(“org.freesmartphone.ogsmd”, “/org/freesmartphone/GSM/Device”)
device_iface = dbus.Interface(gsm_device_obj, “org.freesmartphone.GSM.Device”)
print device_iface.GetSpeakerVolume()


print device_iface.GetSpeakerVolume()

This script sets the volume to 80 (from the default of 68) which was sufficient for me. Valid values range from 0 to 100. With the amplification set to maximum in the GSM chip and alsamixer, the speaker is so loud that everybody can hear that someone is talking at the other end in a range of 2 meters and in quite environments. The Freerunner also starts vibrating a bit. 😀

I do not know, if the volume is reset, if the Freerunner is restarted. But starting this script at every boot cycle is the least problem (see this post)

[Update 19/04/2009]
The volume is reset with every restart. Unfortunately it is not that easy to start the script mentioned above automatically with every restart. The resource (namely the GSM chip) is not available at that time and the script fails. As long as I do not figure out a more comfortable way for this script, I made a button so that I can execute the script by hand after boot and after the chip came up. Let me know any better ways…


* freerunner has arrived

Posted on April 8th, 2009 by Alex. Filed under openmoko.

Finally, after so many months of consideration and thinking, I bought the Freerunner in India. Despite the fact that the price is quite high compared to the price in Europe due to the disadvantageous Dollar-Rupee exchange course, I could not resist any more.

After arrival the first illusion that the Freerunner is actually a phone passed away. Well, it is more a Linux box with a call ability. The Settings button did not work at all and when a call was placed, I was not able to hear anything. The next problem is: What can I do about it? I mean, it is well known, that everything can be changed on this phone, but the question raises: How?

Lot’s of reading followed and I found a nice webpage which guides step-by-step through the process to flash the internal NAND memory. For beginners it might be a good idea to consider this NAND as the internal hard disk drive of the Freerunner (to lessen the abstraction). This memory can be flashed uncountable number of times and nothing will happen, if e. g. the power supply is interrupted. Compared to flashing the BIOS or the firmware on a computer, flashing the Freerunner is more a copying of data which can be repeated in case of any problems. Always the same steps are performed regardless the distribution.

So I tried various distributions: FDOM, Debian, Om2008.12 and Om2008.12 blown up with Kustomizer. Currently and hopefully also finally I ended with SHR. I would like to describe shortly my experiences with the various distributions.


  • FDOM is based on Om2008.9 and brings a huge amount of software (as the name suggests). Most of the preinstalled packages are not needed and it took lots of time to remove the unnecessary stuff. It was nice to see what is possible and to get an idea, what programs are available. However this distributions was to fat for my personal taste.
  • Om2008.12 is the latest version of Openmoko. Most of the things should work out of the box. However I experienced problems especially with the standby mode. Sometimes the Freerunner did not wake up anymore, when the power button was pressed. Or worse: It did not wake up, when a call arrived. From the outside it was not visible, if it will wake up or not. Only a reboot could bring it back to life. Beside the suspend issue, everything worked fine out of the box. Messing around with the Alsa settings produced quite audible conversations (though a little bit too low in the volume for my taste).
    If you want to have Om2008.12 with many preinstalled packages you should try out the Kustomizer mentioned above. It basically transforms the Om2008.12 into a FDOM based on the latest Openmoko kernel.
  • I also tested Debian shortly. Most of the distributions support a Ethernet connection via the usb0 device. However Debian uses eth1 for whatever reason. It did not start into any graphical mode and after installation, a SSH connection via USB is mandatory. Despite the fact that I tried to start a graphical user interface I completely failed due to some errors in the python-evas package. Installing the older one as suggested did not help at all and after a day I gave up and removed it again.
  • SHR is based on the (FSO) middleware which should make many things quite easy to access through the dBus system. SHR is in an early development status and e. g. lacks a manager that can store phone numbers, names, birthdays etc. It is at the moment purely based on the store capabilities of the SIM card which e.g. cannot store 2 different numbers (home, cell, or office) under one name. Fortunately a PIM (personal information manager) is in development. In my opinion it is currently the fastest distribution, but not the one with the flashy icons and beautiful theme. Crashes happen rarer than with Om2008.12. Of all distributions it has the best settings manager, although it is a little bit slow and the suspend mechanism works reliably.

What did I learn?

If you want to change things, it is almost always mandatory to read, read and read. E. g. changing the theme in enlightenment is not as trivial as somebody used to Windows or Ubuntu/Debian might think. The theme has to be programmed and compiled. It can be frustrating, annoying and time consuming. It took me several hours to change the theme in SHR to the one shown below using tango icons and in which the clock shows also the date and week day.

Screenshot of SHR running on Freerunner

Screenshot of SHR running on Freerunner

Many packages on e.g. are broken and an attempt to install them just gives error messages such as md5 hash mismatch or Terminated. It can be quite frustrating, if the packages are not maintained properly.


The Freerunner is a young and ambitious project and might never target the end consumer market, although it has the potential. People, who want to have a working phone with touch screen, etc should have a look at a phone based on Android (although this has also some unpleasant surprises). E. g. I had to get used to the Dialer, which is an application to dial a number. An application needs to be loaded and is not available instantly (applies to all tested distributions)

However people who want to have the option to dive into the complexity of a today’s phone and do not hesitate to learn about various things; people who are eager to dig around to solve a problem and do not get scared of text output in a console will have lot’s of fun with the phone (assuming they have also a good portion of patience). For two weeks I had my fun. Now I have to do some work for my employer…. 😀

Oh, btw, employer: Openmoko cancelled the development of the successor of the Freerunner (GTA03) and reduced the team size drastically. Maybe this is a last chance for a long time to get a real free phone.


* g1 is talking home

Posted on January 7th, 2009 by Alex. Filed under openmoko.

I just read something interesting in the news and this is another reason to point out the importance of an open platform for mobiles such as openmoko. Someone who owned the G1, took this phone abroad. After coming back, he got a bill of around $100 for data roaming. Apparently the phone connects itself silently to the Internet once in a while. If you are in another country, the current provider will charge the transfered data plus the roaming tariff. Response of T-Mobile: “Leave your phone at home.” Nice solution…

APC, another magazine, also reported that, if G1 is operated with a SIM card of a local provider, it sends international SMS to an American number causing huge costs without any warning. Interesting how “user friendly” companies are in the need to generate money and to bug the customers. Which company had the motto “Don’t be evil!” again? Ah yes, Google, the identity collector.


* preview on openmoko

Posted on October 16th, 2008 by Alex. Filed under openmoko.

Today I found something interesting for those who are interested in the openmoko project or are eagerly waiting for their purchased and shipped device to arrive.

Since the source code of the operating system of the phone is freely available (see also this post), it is quite easy to install an emulator that gives the interface of the Neo1973 (not the freerunner so far) in Ubuntu. For a short preview and to play around a little bit, this is quite sufficient. A detailed manual and howto lists all necessary packages that need to be installed on the Ubuntu box. The same instructions also apply, if you have Debian installed. Follow the steps one-by-one and especially Xaos’ hint (in the problem section) to get it working in the emulator.

If you want to remove the emulator again, simply delete the directory in which the emulator resides. Also the installed packages can be removed to save disc space. I provide a list of installed packages as a reference.


* openmoko, android, iphone

Posted on October 2nd, 2008 by Alex. Filed under openmoko.

Neo Freerunner, iPhone, and Android

Neo Freerunner, iPhone, and Android

Something like a hype was created after the global player Google announced its ambition to create a platform for cellphones called Android which should be freely available. That was almost a year ago and by now the customers can purchase the first cellphone based on this platform.

So, the question arises, how “free” this platform is in reality. Well, it provides definitely more freedom than the AppStore by Apple, which seems to keep deleting applications in the directory randomly. Just recently an application has been removed called “MailWrangler” that provided a single interface to manage multiple Google Mail accounts through its web interface. Reason: MailWrangler would confuse the costumers since there is already a mail client available in the iPhone. It clearly shows that the people of AppStore cannot differentiate between a program using a web interface and a mail client. Another question: If it copies the functionality of a mail client, why are 20 different calculator applications available in the store?

But back to the topic: In the past months developers for the Android platform suffered from an incomplete SDK making hacking an application very difficult, while Google’s “premium” developers could implement and test their applications on the most current version. In addition, the first Android cellphone is only available in the US through T-Mobile and has a SIM lock. Is the bounding to a specific service provider called freedom in the land of freedom? I need to hack the phone to gain my freedom?

The freedom comes into picture, if the Android platform will be published under an open source license. Nevertheless many parts such as the GSM module and the SIM lock implementation will not be published. To high is the interest of the involved companies in making money and the risk to damage the GSM network.

Fortunately there is a platform that is absolutely published under an open license called Openmoko. Except for the GSM part, this includes not only the software and operating system running on the phone, but also the hardware. A very active development community has been established around this platform and implements many nice gadgets. If there is not enough software in the original repository, even Debian with its huge package archive can be installed. It is up and free to the user, what operating system and which distribution he wants to use. Till now the software is still under heavy development and basically the phone is a Linux box with a phone facility. So the usual stuff like SSHD etc (as known from a desktop running with a Linux distribution) is available.

Currently the phone is not recommended for public use, since it is still a little bit buggy. But the speed of development and the idea behind it, makes it very interesting for Linux enthusiasts and for people, who want to know, what is going in in their cell phone. Needless to say that nobody (and especially no big global player) can dictate, what you want to use and what you want to do with your device.


RSS Feeds: