embedded systems English articles Openmoko OpenWrt Tech

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 replies on “OpenWrt on the Openmoko Freerunner – some updates…”

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?

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…

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

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 🙂


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.

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!


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 😉

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.


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.

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,


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…


@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…



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.

The problem was resolved by adding to

arch s3c24xx 1

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

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.

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?

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 :/


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

Your email address will not be published. Required fields are marked *