Dear fellow hardware designers,

I find this discussion especially interesting because I'm currently
debating whether to build an all-custom system, or to buy an
off-the-shelf Linux system and interface it to a few custom PCBs.

Currently I'm leaning towards "Buy, Don't Build".

I'm hoping I can learn from you all exactly why that's an awful idea,
at least in my case, so I can avoid making a mistake that I'll regret
forever :-).

I'd like to say up front that Ivan makes excellent points, even though
a few of them don't apply to the particular project I'm working on
this week.

> Date: Thu, 06 Sep 2007
> From: Bagotronix Tech Support
...
> Well, here's my list of embedded Linux challenges:
>
> 1)  It's too complicated to implement quickly on anything other than a X86
> desktop-equivalent system.

I'm considering buying an off-the-shelf Linux motherboard.
Linux is already burned into the flash on system.
It takes zero hours of my time to implement Linux it.

I don't see how you can get more "quickly" than zero hours.
And none of the motherboards I'm looking at are anywhere close to a
desktop-equivalent system -- most of them have ARM processors, and
none of them have a hard drive or other disk drive.

...
>   I could eventually get it all in my head, but I'm a hardware guy, and I'm
> already on overload with the other stuff I have to know
...
> If
> I had infinite time, I'd learn it all.

It would certainly be educational to learn how to build every piece of
hardware myself, and learn now to program every byte of software
myself.

I'm working on a space-constrained system.
It must be less than 1.4 inches ( 35 mm ) wide.
The customer needs a wireless connection at least 5 Mbits/s, and
mentioned that it would be nice to also have a USB connection.

I mentioned to someone else that I was thinking of cramming Linux in
there, and he looked at me like I was crazy, mumbled something about
"bloat", and rattled off a list of "all you need is ...".

Yes, "all I need" are all those things, and I could (eventually)
implement my own custom board(s) that do all those things.
But if this off the shelf system already does 3/4 of those things, why
re-implement those things?
Because it was Not Invented Here?

I guess he was thinking "Linux -- that's kind of like Unix, right?",
and then free-associating to "Unix -- it runs on these huge mainframes
that fill a whole room and require their own special air conditioning
system. Cram all that into a 1.4 inch wide slot? Not going to happen".

While I am astonished that someone can call something "bloat" when it
is smaller than my middle finger, and "weighs 8 grams ... less than
two teaspoons of water", and uses less than 1/10 the power of the rest
of my system.
Even if it includes 1000 times more stuff than I really need ... why not?

I hope that the Wifi in this off-the-shelf system "just works".
Trying to build my own Wifi-compatible system (or my own proprietary,
non-Wifi-compatible system) would certainly be educational.

But I don't see how developing the hardware and firmware IP stack
myself for wireless communication would function any better (Wifi
already meets the specs), or cost less (even amortizing the
development and FCC testing costs over 1000 units) than buying it
off-the-shelf.
And I can buy it off the shelf today, rather than spend an unknown
amount of time developing my own system, and more time going through
FCC approval.
So I can focus on custom hardware and firmware for the leftover
functions that aren't covered by off-the-shelf stuff.

...
> 2)  It can take a lot of work to make Linux run on resource-constrained 
> systems.

A lot of work?
Linux is already burned into the flash on the systems I am considering.
It takes zero work for me to make Linux run on it.

> It would be nice if we always had 3GHz CPU, 2GB RAM, and 100W power budgets, 
> but we don't.

I've heard someone claim "I've used 4 AA batteries for 23-26 hours."
to power one of the off-the-shelf Linux systems I'm considering.

Granted, that person's CPU runs at "only" 400MHz, and was only active
1 minute/hour.

> 3)  Lack of truly good complete documentation on how a Linux system works
> from the ground up.  You can find numerous books and on-line info on pieces
> of it, but I've never seen a tutorial covering it all.
...
> I would like to see a
> book that puts it all together in excruciating detail.
...
> Did I miss anything?
...
> I haven't found it all in any one
> book or website so far.

Yes, I wish for the same thing.

Do you mind if I copy-and-paste your outline into "Wikibooks: The
Linux Kernel" ?
I hope that if everyone who reads it fills in just one more gap, soon
that book will become exactly the "good complete documentation" that
you and I both want.

The article "Migrating from x86 to PowerPC, Part 2: Anatomy of the
Linux boot process" by Lewin Edwards, in the section on "The non-x86
Linux boot process",
points out that the "embedded system" boot sequence is usually much
simpler than the "desktop PC" boot process.

...
> 6)  Super expensive Linux development systems.
...
> The "per developed
> product" license terms are absurd.  I'd be willing to pay up to a grand for
> a development system if I could use it on as many products as I want to,
> with no recurring expenses.  Those are my terms - no one has stepped up to
> the plate yet.

Yes, it makes me wonder "who are these people who pay $25,000 per
developed product"?

It would be nice if I could license the design for some standard
Linux-capable motherboard, and then add the few extra things I need in
my application, all on a single PCB.

But I suspect the license would be crazy expensive,
so I'm planning on at least 2 PCBs per product -- my custom PCB(s)
with the things the Linux motherboard doesn't handle, and the
recurring expense of buying an off-the-shelf motherboard (with Linux
already installed).

I *think* that I won't need a expensive development system for this.

Have you heard of the "open hardware" Linux motherboards?

> 7)  Overly complex development tools.  This is even true for non-Linux
> systems.

Yes.
Too often I see tool more complicated than they need to be.
Too often I hear people disparaging a simple thing, claiming it
"couldn't possibly work" unless every last one of a bunch of
"features" are added.

This is true in other areas as well:
* lots of people incorrectly claim that wiki won't work unless
everyone has a password.
* lots of people incorrectly claim that the oil in a oil cooled
computer will "eat away" or damage some component or another.
* Lots of people (apparently) refused to use Subversion until it had a
little checkmark next to the "Can lock checked-out files?" feature,
although the manual implies that this "feature" causes more problems
than it solves.

...
> I'm not down on Linux.  I like most things about it.  If improvement is
> made on the areas I mentioned, I might use it in an embedded design.

...
> Ivan Baggett
...
> website:  www.bagotronix.com
>
>
> [EMAIL PROTECTED] wrote:
...
> > an interesting article in Embedded Systems Design
...
> > indicates that the use
> > of Linux by engineers is falling quite rapidly.
...
> > Thanks,
> > Andrew J Jenkins
...

Which article was this?

So what is replacing Linux?
Simple "main loop" applications without any OS at all?

Or some other OS, such as eCOS or FreeRTOS or RTEMS or the various
BSDs or WinCE?

== references ==

"Buy, Don't Build"
http://c2.com/cgi/wiki?BuyDontBuild
"Build, Don't Buy"
http://c2.com/cgi/wiki?BuildDontBuy

"Not Invented Here syndrome"
http://c2.com/cgi/wiki?NotInventedHere

"Wikibooks: The Linux Kernel"
http://en.wikibooks.org/wiki/The_Linux_Kernel#Booting_and_Halting

"Migrating from x86 to PowerPC, Part 2: Anatomy of the Linux boot
process" by Lewin Edwards
http://www.ibm.com/developerworks/library/pa-migrate2/

"I've used 4 2500mAh AA batteries for 23-26 hours." to power an
off-the-shelf Linux system.
http://docwiki.gumstix.org/Talk:Batteries

"who are these people who pay $25,000 per developed product"
http://www.linuxdevices.com/news/NS6984137953.html

"open hardware" Linux motherboards:
* ARMUS Embedded Linux Board http://opencircuits.com/ARMUS_Embedded_Linux_Board
* The Balloon Project: embedded Linux http://balloonboard.org/

"Can lock checked-out files?"
http://svnbook.red-bean.com/en/1.4/svn.basic.vsn-models.html#svn.basic.vsn-models.lock-unlock

"Embedded Operating Systems"
http://en.wikibooks.org/wiki/Embedded_Control_Systems_Design/Operating_systems

--
David Cary

 
____________________________________________________________
You are subscribed to the PEDA discussion forum

To Post messages:
mailto:[email protected]

Unsubscribe and Other Options:
http://techservinc.com/mailman/listinfo/peda_techservinc.com

Browse or Search Old Archives (2001-2004):
http://www.mail-archive.com/[EMAIL PROTECTED]
 
Browse or Search Current Archives (2004-Current):
http://www.mail-archive.com/[email protected]

Reply via email to