Openmoko build infrastructure questions
Michael 'Mickey' Lauer
mickey at openmoko.org
Wed Apr 16 14:24:56 CEST 2008
I have been requested to comment on our choice of build tools, specifically
OpenEmbedded. Unfortunately most of the statements people have approached
us with are not based on technical problems, but rather a vague sense
of uncertainty and doubt, which it is hard to argument against.
Anyway, let us take this opportunity to clean up some things and reply based
on facts and technical arguments.
Now the first bunch of questions:
>---1 "The openwrt build system is much easier to use than OpenEmbedded"
>Can Openmoko switch to the openwrt build system?
Of course, we could. However, what problem are we trying to solve here?
Where is the exact problem description? Is it the lack of a UI?
I'd rather fix this problem than go back to where OpenEmbedded started 5
years ago. The ease of use of OpenWRT mainly comes from its simplicity:
If you only target few and very similar devices combined with a limited
set of packages, you can cut a lot of corners at the cost of flexibility
and synergy. There's a ton of features OpenEmbedded provides us that are
missing in OpenWRT.
>---2 "building with a cross-compiler is wrong, builds should be done
>natively in an emulated (qemu) arm environment"
>Can Openmoko switch to compiling arm binaries 'natively' in a qemu
>environment, like Ubuntu Mobile?
Again, what's the exact problem description here? Cross-compilation is not
"wrong" at all, it works very well. By compiling in environments like
Scratchbox or Qemu we give away a lot of flexibility and scalability.
It will kill performance and the end result (as in the flashable image)
does not differ at all. So, where would be the potential benefit?
>---3 "Openmoko should use normal .deb or .rpm packages, instead of
>This usually includes people saying we should use src rpms / debian
>src files to build packages.
That's actually two different questions and I can only comment on one:
3.1. What's the actual problem here rather than a desperate attempt to
unify the desktop and the embedded world more than what's good for
the embedded world? Is it that .ipk are less known than .deb? Is it
the feature of the command line tools or the packaging system per se?
Yes, we can use .debs -- the guys working on Mamona (an alternative
OpenEmbedded-built distribution for the Nokia Internet Tablets) are doing
that with OE. However, before even considering such a switch it's very
important to know what problem we want to solve. We should also consider
that ipkg is more than dpkg, rather something like apt, which performance-wise
is a completely different story on a phone.
RPM? I have yet to see a version of RPM that is working at all (not
considering performance) on an embedded system like the Neo. Until
then we should not even talk about that as a viable option.
3.2. I have no experience with building from source packages other than
tarballs. Maybe someone else can comment on that.
>---4 "Merge the Openmoko distribution into Moblin"
>Intel wants us to do this, and offers all kinds of support if we did.
>No cross-compilation either.
At first, Moblin per se is not a build utility, it's rather an umbrella
project for a dedicated set of patches and applications for the so-called
Intel Mobile Internet Devices. It happens to come with a build utility
that is actually pretty limited (no cross-compilation to start with,
heaps of other features from OE missing).
Moblin as in patches and applications is a different story, we should talk
about that on openmoko-devel, however my first impression is we would give up
a lot of flexibility by locking people in to one environment. The openness of
Openmoko depends on a large part on the availability of OpenEmbedded. Without
OpenEmbedded it will be much harder for people to come up with own
experiments based on the Neo hardware.
I hope that clarifies some things and gets the discussion started, if
More information about the distro-devel