I've done similar work, so I can answer some of your questions, but not
On Thu, 25 Oct 2012 01:10:19 +0000 Ivan Reche <ivan.reche@...>
> I've convinced some managers in the company I work (a huge player in
> the set top boxes market) to let me build a prototype of a new
> software using the EFL. I have one month to do so. However, most of
> our set tops provide an embedded Linux environment with no support to
> X or anything similar. In fact, some STBs won't even provide us with
> a Linux environment (we have to run the software in the bare metal,
> implementing a few basic tools to have the feel of an OS).
> I've talked a little about this with some nice guys at the IRC
> channel, but I would like to create this thread so we can give the
> opportunity to other developers in the same situation to use this as
> a reference.
> I've never done a project with the EFL before (I'm creating my first
> ones right now), so I have some doubts:
> - is it reasonable to port basic Evas functionality to this
> proprietary API (that comes with functions to draw lines, rects,
> bitmaps, etc) in less than a month? I need to setup a simple
> prototype to prove the concept;
> - is it reasonable to port this proprietary stuff to Wayland and then
> use the EFL? Probably not, I guess :)
> - for Evas and Edje, what would be the order of magnitude of the
> footprint? A few kilobytes? A few megabytes? There is information
> about the RAM usage in the site, but I couldn't find numbers about
> the size of the binaries. Usually we have around 32 MB of FLASH
> memory and 512 MB of RAM;
> - as most of our set tops run on MIPS, how well is this architecture
> supported? From the site, I'd guess that this shouldn't be an issue.
I use EFL for an embedded project, where I have made a Linux OS built
from the ground up to support EFL (up to edje) and the project. I use
Linux kernel frame buffer instead of X. For my entire OS + EFL + the
actual application, the FLASH image is 13 MB. A bit more of the FLASH
is used for the actual data (a few KB of eet files). 256 MB of RAM is
what our boards have, but we don't need that much. So 32MB of FLASH
and 512 MB of RAM might be plenty, depending on what else your actual
application needs. I've not tried MIPS, I don't have any MIPS
hardware. My embedded project runs on a x486 SOC.
For a quick proof of concept prototype, I'd work on using a small Linux
image and adding EFL on top of that. Porting EFL to bare metal I don't
think is a one month, quickie proof of concept project.
I build on Aboriginal Linux, which is the barest minimum number of
packages needed to build a Linux OS that can be used to compile
anything else. It is made of only busybox, uClibc, the linux
kernel, gcc, binutils, make, and bash. Half of those are not needed on
my final image though, as they are build tools.
On top of that, I have gone to a lot of trouble to build the bare
minimum EFL and dependencies needed for my project. So on top of
Aboriginal Linux, I add zlib, m4, pkg-config, a gettext stub (full
gettext is not needed on my project, it only needs to do English, you
may need full gettext), e2fsprogs (I use ext3, but the busybox version
of fsck and mkfs can't deal with ext3), and iana-etc. Again, some of
those are build tools not needed in the final image.
Next is the actual EFL and it's dependencies. Eina, libjpeg, libpng,
eet, freetype, expat, fontconfig, evas, ecore, embryo, lua, and edje.
In the latest EFL fontconfig is optional, and I think expat is only
needed as a dependency of fontconfig. I've not tried to remove it yet
though. Lua might be optional for you, but I actually use it in edje
for my project (I added the most recent edje-Lua code to EFL
specifically to support this project). A set top box would likely need
video and network support that is not needed for my app, so a few more
things will be needed by your project.
Finally, I add the actual application itself, plus the fonts, graphics,
and sound files it uses.
I use grub legacy to boot this, but I'm not sure if that supports MIPS,
or if your STBs would need something else.
Add distcc and qemu for development work on my Ubuntu development
workstation, and that's pretty much all the software I need.
To speed things up, you can develop the actual EFL app on a beefy
development work station using Linux and X, then just recompile it for
the set top box only when you need to test on actual hardware.
A big old stinking pile of genius that no one wants
coz there are too many silver coated monkeys in the world.