OpenWrt on the Openmoko Freerunner – some updates…

Long time no news regarding OpenWrt <-> the Openmoko Neo devices; but it
happened much!

It now reached a state where I think it’s justified to announce a ready-to-work(/debug?) OpenWrt-Image for the Openmoko Freerunner.

This should be a short overview of what happened

– kernel is running
all neo-specific patches were extracted from the OM-kernel-tree and
created an atomic and maintainable patchset for the Neo (thanks to Lars !!)

– clean, stable and accelerated graphics system
thanks to the gorgeous work of the xf86-video-glamo developers (especially Lars (again)), finally
there’s no need for <Xglamo> anymore – acceleration is done from within
an usual <Xorg> with the glamo-driver used. The infamous WSOD (white screen of death) should be
ultimately purged out.

– GPS works
the amazing application <tangoGPS> is also available as an
OpenWrt-package now

– performance tuned
due to it’s architecture itself, fixed bugs and found ways for
optimizations through all layers, OpenWrt now boots in less than 1
minute into illume (very first boot excluded)

– software added/upgraded
besides lot’s of just OpenWrt-related improvements, also typical
OM-community-used packages were added and upgraded to recent versions
(e.g. tangogps, enlightenment/the whole efl-suite, paroli, fso, connman,

– a beautiful bootsplash
real beauty can’t be described by words 😛

– phone calls are still possible
thanks to paroli, the basic phone stuff is (still) working (phone calls,
messages, contacts, etc.)

== Images / environment

Images can be found here:
Mind – that, as usual for OpenWrt – the default IP of your device will
be “” and the only running service will be <telnet> on port
After logging in and setting a password, <telnetd> is getting replaced
through <sshd> (port 22).
The mentioned files/images have the prefix “20090706_r16709_1”, based on
svn-revision 16709.

Suggestions / critism is welcome… 🙂

The original announcement on the mailinglists can be found here (


25 Responses to “OpenWrt on the Openmoko Freerunner – some updates…”

  1. Christian Schwamborn on July 25th, 2009 11:04 am

    Is there any way to boot with the openwrt kernel form the mmc/sd card for testing? The kernel seems to have no support builtin for mmc/sd cards as block-devices. Even my efforts are in vain to build build form svn. I always got a kernel-panic about an unknown device 179,1 (which is the mmc/sd card partition 1) while trying to mount the rootfs.
    The whole subject seems to be a black spot in the openwrt-forum.
    I tried a debian kernel, which works with the proper boot parameter (such as init=/etc/preinit).
    By the way, is there a possibility to switch off the bootsplash, to see more of the kernel trace?

  2. admin on July 28th, 2009 10:58 pm

    Please try out the latest images I built and uploaded a few days ago.


    Tested with qi and ext2 as filesystem on card

  3. xchris on July 30th, 2009 8:00 pm


    Nice work, but when I boot it, it does not mount the sd card.

  4. admin on July 30th, 2009 9:52 pm

    It should mount the first partition automatically to /card in case it’s fat/ext (see /etc/config/fstab).

    Better would be of course handling it dynamically – maybe hotplug2 / udevtrigger can do so – will take a look at this soon…

  5. Glenn on August 2nd, 2009 8:42 am

    Thanks for helping porting OpenWrt to the Openmoko phones.

    I do however have the same problem as r16738 – I think.

    The r16738 can see the partition on a SDHC-card, the r16973 can not.

    # r16738 on internal NAND-flash:
    root@OpenWrt:~# opkg update …
    root@OpenWrt:~# opkg upgrade …
    root@OpenWrt:~# df -k
    Filesystem 1K-blocks Used Available Use% Mounted on
    /dev/root 252544 46632 205912 18% /
    tmpfs 63236 1904 61332 3% /tmp
    tmpfs 512 0 512 0% /dev
    /dev/mmcblk0p1 7802 1958 5844 25% /card
    root@OpenWrt:~# ls -l /dev/mm*
    brw-r–r– 1 root root 179, 0 Jul 2 07:49 /dev/mmcblk0
    brw-r–r– 1 root root 179, 1 Jul 2 07:49 /dev/mmcblk0p1
    brw-r–r– 1 root root 179, 2 Jul 2 07:49 /dev/mmcblk0p2
    root@OpenWrt:~# uname -r

    # r16973 on internal NAND-flash:
    root@OpenWrt:/# df -k
    Filesystem 1K-blocks Used Available Use% Mounted on
    /dev/root 252544 46376 206168 18% /
    tmpfs 63148 88 63060 0% /tmp
    tmpfs 512 0 512 0% /dev
    root@OpenWrt:/# ls -l /dev/mm*
    brw-r–r– 1 root root 179, 0 Jul 2 08:15 /dev/mmcblk0
    root@OpenWrt:/# uname -r

  6. admin on August 2nd, 2009 9:42 am

    That’s weird.

    Unfortunately I don’t have a SDHC-card for testing – will get one asap, to debug that.

    Thanks a lot for your feedback 🙂


  7. Erwin on August 2nd, 2009 12:13 pm

    Incredibly fast !

    Thanks a lot for this first distribution that is USABLE. I tried many freerunner distrib, none has, in my own opinion, the speed needed to make a usable phone (and router ^^). The true power of EFL lib on top of uClibc.

    Many things doesn’t work right now, normal. But this work is amazing, keep going as OpenWRT is really a good and robust distrib and you seem to be very competent.

  8. admin on August 2nd, 2009 12:34 pm

    Thank you a lot for your compliment and feedback – this keeps us up continuing working on projects like this 🙂

    Can you tell us, what does not work you?
    What do you think should be the next step?
    We can’t promise anything – but, any help, including any kind of feedback as well as wishes – will be part of further developement.

    Thanks again for your positive feedback!


  9. Erwin on August 2nd, 2009 2:11 pm

    What does not work for me ?
    – TangoGPS doesn’t find my location
    – There is no sound (mixer says “No ALSA mixer found)
    – If I click on “Rotate” button, screen goes white and black and no way to come back to portrait orientation.
    Next step ?
    – Freerunner buttons should be used : Same combination than Android is fine.

    There is many more points, but we’ll have to discuss about that as I don’t know much your distrib for the moment.

    Again, thanks for the work 😉

  10. admin on August 2nd, 2009 2:19 pm

    all three points you mentioned not to work do for me (gps, sound, rotation) – that’s weird.

    Are you using the prebuilt images I uploaded here ( or did you built the image yourself?

    Either way, please mention revision and – if you built the image yourself – post your config.


  11. Erwin on August 2nd, 2009 3:45 pm

    Oh, so maybe I could make all this things work. See the mail I sent to spam at

  12. Glenn on August 3rd, 2009 7:33 pm

    Could you please send some links that shows how OpenWrt is configured.

    I have found:
    ( )

    This are not enough.

    Somewhere I also found:
    opkg install luci-admin-full
    opkg install luci-app-ddns
    opkg install luci-app-firewall
    opkg install luci-app-ntpc
    opkg install luci-app-qos
    opkg install luci-app-samba
    opkg install luci-theme-openwrtlight

    Please send links to more documentation that give some more information about the semantics of interactions between routing, firewalling, QoS, OpenVPN, dhcp, security….

    Some OpenWrt best practice sites if they exist?

    Which modules that should be installed?

    It might be that it is very simple, but I just have not found that out yet.

    I assume you have my e-mail address. Thanks in advance.

  13. mathias wendel on August 3rd, 2009 8:27 pm

    Thank you for your great work on the freerunner!!

    its booting so qickly! and seems to work fine generally.

    Nevertheless I’m sorry to say that I’m only a silly “enduser”, so I have some questions: How do I set a ringtone – only the vibration does work, when a call commes in. “normal” paroli behaviour – pressing the aux-button changes between default and silent – does not work. is there a problem with the sound in general?

    Hope I’m not ennoying you, thanks for your work again,


  14. admin on August 3rd, 2009 9:04 pm


    There is the new wiki, the old wiki, the documentation you mentioned and the tex-files within the svn-repository:

    I don’t know why you’re trying to install the webinterface on it or of what modules you’re talking about.

  15. xchris on August 12th, 2009 6:53 pm


    What’s the difference between your build and the one from there; ?

  16. admin on August 12th, 2009 8:01 pm

    Mine are made with love and passion.

    They have some config-tweaks and an (in my eyes reasonable) default set of packages.

  17. xchris on August 17th, 2009 3:45 pm

    I give a try again (as I had the SHR).

    the sd is NOT mounted.. (there is NO /dev/mmcblk0p1 just a /dev/mmcblk0).

    The fdisk can see the card (I can print the partition).

    There is NO way to install any application from the repository. Maybe you put wrong binaries there??

    I got that ” Packages were found, but none compatible with the architectures configured”

    Good work, but sorry to say, not usable….
    too bad…


  18. admin on August 17th, 2009 4:06 pm

    @xchris – thanks for your comment(s) and effort(s) sharing your end-user-experiences 🙂

  19. xchris on August 17th, 2009 8:58 pm

    @admin, you are welcome.

    I am still trying to mount the uSD.
    I deleted and re-created the /dev/mmcblk0 /dev/mmcblk0p1, but there is no way to mount the uSD. (perhaps problem of the kernel?).

    As for the packages install, I found that there /etc/opkg/arch.conf is missing from the installation. I set it up and all ok (I managed to update/upgrade) but now, when I try the ‘screen rotate’ application, I get a WSOD…



  20. imatveev13 on September 27th, 2009 2:22 pm

    Hello admin! Thankyou for building OpenWRT images for freerunner!
    I’v installed OpenWRT to SD card. Qi boots it beautifully.
    When I try to
    #opkg install mc
    Collected errors:
    * Packages were found, but none compatible with the architectures configured

    same with all other packages.

    #cat /etc/opkg.conf
    src/gz snapshots
    dest root /
    dest ram /tmp
    lists_dir ext /var/opkg-lists
    option overlay_root /jffs

    architecture the packages are built for is s3c24xx, while
    # uname -a
    Linux OpenWrt #1 PREEMPT Sat Jul 25 23:41:15 CEST 2009 armv4tl unknown

    so the device architecture is armv4tl.

    opkg documentation( mentions /etc/opkg/arch.conf file but dosn’t tell what this file shell contain.

    Is there a way to resolve the problem?
    Thanks for any help.

  21. imatveev13 on September 27th, 2009 4:06 pm

    The problem was resolved by adding to

    arch s3c24xx 1

    line. Where ‘s3c24xx’ is the architecture and ‘1’ is a ‘priority’ whatever that means

  22. Stina on November 7th, 2009 10:36 pm

    Thank you!

    I’m developing dedicated medical devices and OpenWrt is the perfect distribution to use as a base.

    However (you suspected this didn’t you) WSOD is not gone. I have it in the console (X not running!). Some people says it’s a bug in the splash screen.

  23. feitingen on November 16th, 2009 2:07 pm

    This is pretty cool, boots fast and is very usable as soon as I fix the package manager problem 🙂

    However, I am trying to build my own images with my own love and passion and fails on some areas (gtk2 and xglamo), would you mind sharing your config tweaks please?

  24. admin on November 18th, 2009 12:39 pm

    That’s weird – I didn’t experience such problems.
    However Lars is developing and maintaining the glamo-driver – he may have an idea.
    I would suggest to write to the openmoko-dev mailinglist, as to me this does not seem OpenWrt specific.

    Xglamo is dead, we’re using Xorg and a glamo-driver these days 😉 However lot’s of changes to the OpenWrt buildroot happened last months which unfortunately broke the s3c24xx(Openmoko)-target.
    Right know I’m quite busy with the NanoNote-project so it may take a while until this gets fixed. However, patches, suggestions and (bug)reports are welcome – sorry :/

  25. franz on February 11th, 2010 9:13 am


    I am trying to build my own images with my own love and passion and fail.

    I am experiencing a build problems with the glamo driver regarding DPMS (well, syntax errors in include files…).

    Is there a standard way to binary search build problems in the svn repo? What is the last known good revision?

    Kind regards Franz

Leave a Reply