[ECOS] Newbie feedback and braindump.
Thu Nov 6 00:31:00 GMT 2003
I've recently been playing with eCos - it seems like a fascinating
project with quite some potential. I have not yet run eCos on a really
embedded box (I'm thinking about getting an openbrick, based on the
Geode chipset),so I though I'd play with the Linux Synthetic setup.
I swear I followed the advice on the web pages. Really. Don't tell me to
RTFM - I did, many times. But still it took me 4 days to get as far as
successfully running "Hello World" on Linux...
First, I tried to use the 2.0 kit as suggested by the web pages but this
just didn't work. I tried the GUI configtool (BTW, please give it an
eCos specific name, it's very confusing otherwise) and frankly I don't
think it made the job any easier. The sequence of events is NOT
intuitive to someone learning how the components work.
Then I found http://www.mlbassoc.com/examples/ and used the command line
ecosconfig against the latest CVS version. Hooray - finally I saw "Hello
The first problem, I perceive, is that it is NOT obvious to a newbie
that the "Linux Synthetic" platform is a thing distinct from the "PC"
platform. I assumed (not unreasonably, I think) that the default
template was the right one; the templates are not are not organised by
architecture, and so it is not obvious that the default i386 template is
NOT suitable for the "Synthetic" target. I'm sure that this distinction
is so stunningly obvious to many of you who know eCos well, so that you
can't imagine why I'm so stupid. Well I saw the instruction to select a
template, and the default seemed OK, so it never ocurred to me - had I
seen the available choices in the i386 domain by default, I might have
noticed that there was another choice.
Building the ecosynth target is also far from obvious. Once I'd actually
realised that, no, it is NOT built as part of the target, I read
advised me to cd "somewhere suitable" and use a directory synth_build.
So I did. Well I had an ecos directory and I'd created a config call
"synth" - obviously, this was a build for the synthetic target - and the
configtool had created a directory synth_build...
It tooks me HOURS to realise that the idea was to create a DIFFERENT
directory from the one I'd used for the rest of the eCos build, and that
the name synth_build was just a coincidence. You cannot tell a newbie
just to cd "somewhere suitable" - I do not yet know what "suitable"
The advice from the web pages is for newcomers to build with the GUI. I
disagree. The GUI does not make the process clearer - in fact it
obscures what is going on. It may make Windows users feel happier (I
don't know), but I just found it confusing. Trying to configure the
right thing (I realised I wasn't getting the synthetic target, but
couldn't work out why), I was getting information about build problems
and conflict information with macro names - but nothing to link this to
the package names and configuration options in the main window (compare
to the Linux kernel "make xconfig" which always gives the actual macro
names in the GUI).
It's a very important part of the process of first using something like
this that the initial process and constructing the first demo is easy;
THEN one can start tweaking. The MLB Associates example came fairly
close to this ideal, but the eCos web info has a great deal of verbage
and screen shots to do the equivalent, and still doesn't work, as far as
I'm concerned. I have no idea whether the 2.0 code will work if I try
again from scratch, but I'm not that motivated to find out.
I happen to be fairly motivated to investigate eCos, and I do know that
it actually works, so I persevered, but blimey it was uphill work. It
wouldn't be hard to make the ecos-install.tcl ask "would you like to
build the Synthetic Linux demo" and run Hello World out of the packet,
and as that seems likely to be a very common first proof-of-concept, it
should eliminate many newbie questions. RPMs aren't hard to build; if
Etherboot images can be built by www.rom-o-matic.net, RedBoot really
shouldn't be any harder.
Before posting, please read the FAQ: http://sources.redhat.com/fom/ecos
and search the list archive: http://sources.redhat.com/ml/ecos-discuss
More information about the Ecos-discuss