[ECOS] Newbie feedback and braindump.

Andrew Lunn andrew@lunn.ch
Thu Nov 6 09:39:00 GMT 2003

On Thu, Nov 06, 2003 at 12:31:39AM +0000, Peter Lister wrote:
> Hello,


Its a long email, so im only going to reply to selective parts and do
some pruning.

> 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.

A technical point first. Be careful of your terminology. You are
mixing up the words targets and templates. A target is basically a
board, eg ebsa285, MPC8xxFADS, EAB-2, PC motherboard etc. A template
is a preselected set of packages, eg net, POSIX, minimal. You also
have architectures. These are things like ARM, PPC, i386. Basically
instruction sets.

OK. The i386 target is a PC motherboard. The synth target does not run
on a PC motherboard. It runs on a synthetic board inside linux.

> 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.

You mistake here is mixing up template and target. You selected a
target, not a template.
> 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
> http://ecos.sourceware.org/docs-2.0/ref/synth-install.html, which
> 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"
> *means* yet.

Well, the instructions say:

$ cd <somewhere suitable>
$ mkdir synth_build
$ cd synth_build

This will result in an new empty directory. Always.

Look at it the other way around, the way you have interpreted it. If
it wanted you to go into a specific directory which already existed
and had the name synth_build, it would not have said "cd somewhere
suitable". It would of explicitly told you to goto that
directory. Does these instructions in any way suggest to use an
existing directory? Do they suggests they might be already a directory
called synth_build? So instead of following the instructions you have
done something slightly different which has resulted in you getting
into problems.

When im faced with something new, i try to follow the instructions
exactly. I don't try to interpret them and make changes. I know i
don't know enough about the system yet to know why im being asked to
do it this particular way, but i assume i must otherwise i get into
> 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.

Isn't that the whole point of a GUI? But thats a digression which will
lead to a GUIvCLI flame war....

I think it depends on what direction you are coming from, Unix or
Windows. If you are a M$ Windoze person, i'd suggest trying to use the
GUI to start with. If you are a Unix person, use ecosconfig. 
> 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,

It could do that, but its a bad idea. eCos is not an application for
end users. Its a set of sources for embedded systems
programmers. Users of applications just want to use the
application. Programmers need to know how to build it, how to install
it, how to run and debug it. They need to know all the inside details
so they can modify it to there own needs. There is a learning process
here. In your 4 days of struggle you have learnt some of these
things. You have taken a few steps towards being able to use eCos to
write embedded applications. If the installation script did all this
for you, you would have a working hello world, but what have you
learned which will help you make your real application?

Now, eCos is open source. This includes the documentation and the
installation scripts. If you can make them better, please do send us


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 mailing list