EmbeddedRelated.com
Forums
The 2024 Embedded Online Conference

i686 Embedded Linux

Started by Rob Gaddi December 12, 2008
I'm trying to get started on a project getting Linux running on what's
only kinda sorta an embedded system: a Celeron mini-iTX board with 256M
of RAM.  Boot drive is a 1GB CF card. 

On one hand, I've got all of the advice for people trying to put
together a truly embedded system with much tighter resource
restrictions that I've got, generally involving cross-compilers and
recommendations that I hire a Montavista or equivalent to take the
load off me.  On the other, I've got the option of just busting out one
of the standard distributions, but they all start from the assumption
that I'm trying to have a full blown workstation complete with
OpenOffice.

When all is said and done, the device I'm building is going to be a
network device, running on a closed network.  It'll be running headless,
no keyboard/mouse/monitor, etc, and realtime-ish performance will be a
consideration.  What I think I want, therefore, is to have it sitting
there running a few server daemons, probably ftpd, lighttpd, telnetd,
that will under normal operation be handling little to no traffic, and
the proprietary protocol thing that I'll be writing to handle the main
purpose of the whole thing.  I don't need/want X, and think I can
probably get away with nothing more substantial than the shell in
busybox as a user interface.

Does anyone have advice as to the best way to get to that destination?
Should I be starting from kernel.org and building up?  Should I start
with Ubuntu and pare down?  Is there any sort of better starting point
that will put me somewhere between these two?  I've got processor
cycles, RAM, and drive space all to burn, and so I don't need to be
fantastically aggressive about trimming fat, but I'd like to try to
keep the waste to a reasonable level.

-- 
Rob Gaddi, Highland Technology
Email address is currently out of order
On Dec 12, 12:25 pm, Rob Gaddi <rga...@technologyhighland.com> wrote:
> I'm trying to get started on a project getting Linux running on what's > only kinda sorta an embedded system: a Celeron mini-iTX board with 256M > of RAM. Boot drive is a 1GB CF card.
Why bother with 1G? I just got a 133X 4G CF for $7 after $5 rebate. 8G is less than $20 as well. You can put KDE/X on less than 4G.
Rob Gaddi wrote:
> I'm trying to get started on a project getting Linux running on what's > only kinda sorta an embedded system: a Celeron mini-iTX board with 256M > of RAM. Boot drive is a 1GB CF card. > > On one hand, I've got all of the advice for people trying to put > together a truly embedded system with much tighter resource > restrictions that I've got, generally involving cross-compilers and > recommendations that I hire a Montavista or equivalent to take the > load off me. On the other, I've got the option of just busting out one > of the standard distributions, but they all start from the assumption > that I'm trying to have a full blown workstation complete with > OpenOffice. > > When all is said and done, the device I'm building is going to be a > network device, running on a closed network. It'll be running headless, > no keyboard/mouse/monitor, etc, and realtime-ish performance will be a > consideration. What I think I want, therefore, is to have it sitting > there running a few server daemons, probably ftpd, lighttpd, telnetd, > that will under normal operation be handling little to no traffic, and > the proprietary protocol thing that I'll be writing to handle the main > purpose of the whole thing. I don't need/want X, and think I can > probably get away with nothing more substantial than the shell in > busybox as a user interface. > > Does anyone have advice as to the best way to get to that destination? > Should I be starting from kernel.org and building up? Should I start > with Ubuntu and pare down? Is there any sort of better starting point > that will put me somewhere between these two? I've got processor > cycles, RAM, and drive space all to burn, and so I don't need to be > fantastically aggressive about trimming fat, but I'd like to try to > keep the waste to a reasonable level.
You could start with Damn Small Linux (Google for it). A standard kernel with the daemons will have plenty of capacity to run the daemons / services. The consumer-grade destributions are much too heavy for pruning for your use. -- Tauno Voipio tauno voipio (at) iki fi
On Fri, 12 Dec 2008 20:53:34 +0000, Tauno Voipio wrote:

> Rob Gaddi wrote: >> I'm trying to get started on a project getting Linux running on what's >> only kinda sorta an embedded system: a Celeron mini-iTX board with 256M >> of RAM. Boot drive is a 1GB CF card. >> >> On one hand, I've got all of the advice for people trying to put >> together a truly embedded system with much tighter resource >> restrictions that I've got, generally involving cross-compilers and >> recommendations that I hire a Montavista or equivalent to take the load >> off me. On the other, I've got the option of just busting out one of >> the standard distributions, but they all start from the assumption that >> I'm trying to have a full blown workstation complete with OpenOffice. >> >> When all is said and done, the device I'm building is going to be a >> network device, running on a closed network. It'll be running >> headless, no keyboard/mouse/monitor, etc, and realtime-ish performance >> will be a consideration. What I think I want, therefore, is to have it >> sitting there running a few server daemons, probably ftpd, lighttpd, >> telnetd, that will under normal operation be handling little to no >> traffic, and the proprietary protocol thing that I'll be writing to >> handle the main purpose of the whole thing. I don't need/want X, and >> think I can probably get away with nothing more substantial than the >> shell in busybox as a user interface. >> >> Does anyone have advice as to the best way to get to that destination? >> Should I be starting from kernel.org and building up? Should I start >> with Ubuntu and pare down? Is there any sort of better starting point >> that will put me somewhere between these two? I've got processor >> cycles, RAM, and drive space all to burn, and so I don't need to be >> fantastically aggressive about trimming fat, but I'd like to try to >> keep the waste to a reasonable level. > > > You could start with Damn Small Linux (Google for it). > > A standard kernel with the daemons will have plenty of capacity to run > the daemons / services. > > The consumer-grade destributions are much too heavy for pruning for your > use.
That would work, and you get a pretty sign-on screen to boot. I was going to suggest Debian (which is infinitely configurable, and upon which Ubuntu is based), but DSL should work. Consider learning how to build kernels so you can put one of the real- time Linux kernels in if you need it. -- Tim Wescott Control systems and communications consulting http://www.wescottdesign.com Need to learn how to apply control theory in your embedded system? "Applied Control Theory for Embedded Systems" by Tim Wescott Elsevier/Newnes, http://www.wescottdesign.com/actfes/actfes.html
On 12/12/08 20:25, Rob Gaddi wrote:
> Does anyone have advice as to the best way to get to that destination? > Should I be starting from kernel.org and building up? Should I start > with Ubuntu and pare down? Is there any sort of better starting point > that will put me somewhere between these two? I've got processor > cycles, RAM, and drive space all to burn, and so I don't need to be > fantastically aggressive about trimming fat, but I'd like to try to > keep the waste to a reasonable level.
You could build it all yourself: get your own kernel and configure it yourself and build a root filesystem with buildroot: http://buildroot.uclibc.org I've used that approach for building an ARM-based Linux system. Whether that approach or a pare-down approach is better probably depends on what your final destination is. One will leave you with a very minimal setup (possibly even less than you want), the other will probably leave you with more than you need. -- Paul
Rob Gaddi wrote:
> I'm trying to get started on a project getting Linux running on what's > only kinda sorta an embedded system: a Celeron mini-iTX board with 256M > of RAM. Boot drive is a 1GB CF card.
..
> > Does anyone have advice as to the best way to get to that destination? > Should I be starting from kernel.org and building up? Should I start > with Ubuntu and pare down? Is there any sort of better starting point > that will put me somewhere between these two? I've got processor > cycles, RAM, and drive space all to burn, and so I don't need to be > fantastically aggressive about trimming fat, but I'd like to try to > keep the waste to a reasonable level.
Look into "Debian Live". Pete
On Dec 12, 3:53 pm, Tauno Voipio <tauno.voi...@INVALIDiki.fi> wrote:

> You could start with Damn Small Linux (Google for it).
It's small, but it is ultimately a GUI distribution. Something like ttylinux or an older installer that offered a no - X option might be more suited. It's sometimes nice to be able to open an xterm from your embedded system displaying on your pc, so having an install that includes x clients like that can be useful. But it it's just xterm, you can get most of the same functionality by opening a local xterm and a new telnet or ssh connection to the embedded system. Pick a distribution for which it's easy (vs theoretically possible) to get full sources, as if doing commercial distribution of your product you will need to be able to supply them.

The 2024 Embedded Online Conference