Linux Distributions for Embedded Development? 56
FirmWarez asks: "Time to put together a new Linux box. I'm an embedded systems guy. I need to support cross development for a number of embedded platforms, from tiny micro-controllers through Coldfire, ARM, and other embedded processors. Projects will range from 'for work' to putzing around with open sourced consumer gadgets. What Linux distribution would you choose and why?"
Re:Not Linux (Score:1, Funny)
This will be well worth the wait.
*sob* I'm so hungry *sob*
Re:Not Linux (Score:4, Informative)
Go and read something about Gentoo Embedded [gentoo.org] and stop trolling!
Re:Not Linux (Score:2)
Re:Not Linux (Score:1)
NetBSD is less portable (Score:2)
Even counting systems with an MMU, Linux supports more types of CPU. Heck, there have been CPUs designed explicitly to run Linux.
Re: (Score:2, Insightful)
Re:Please press any distro. (Score:4, Informative)
Agreed. Having, "been there, done that", I've used both Fedora Core and Mandrake for this in the past. (Mandrake because this was my main PC and I wanted easier access to multimedia and a slicker desktop).
Most of the time will be spent actually building the cross-compilation toolkit and developing code for the target, so you might as well do it in an environment that you're familiar and comfortable with.
-- Joe
Re:Please press any distro. (Score:2)
Last time I looked (which was pretty recent) their stuff was supported only on RedHat WS.
It will run perfectly fine on Debian and derivatives. I suspect that it will run fine on Suse/Novel, but it is "not supported". Main reason is that their primary business objective is delivering cosy feelings to telco vendor midlevel PHBs which look for buzzwords like "carrier grade bollocks" instead of a real product. As such they do very carefully not to mention any such pinko comy distros like Debian
Re:I am sorry to disappoint you (Score:2)
Re:I am sorry to disappoint you (Score:3, Informative)
In that case the question is not very interesting. Any Linux distribution will do, though Debian includes a few pre-built cross-compilers now.
So let's answer the more interesting question that a minor mis-reading gives us: try LFS (Linux From Scratch) for the smallest devices. For something bigger, Debian or Gentoo would be good.
Linux From Scratch (Score:3, Informative)
The Linux From Scratch project, while not really a distribution is very well suited to this type of task
You didn't think of uClinux? (Score:4, Informative)
If this dosn't work on your processor, nothing does.
Re:You didn't think of uClinux? (Score:3, Informative)
Re:You didn't think of uClinux? (Score:2)
Debian (or derivative) (Score:3, Informative)
But before you jump in, it helps to dig through the platforms you aim to use and see what their official toolchain does, and what exactly is available for linux. GCC is definately popular with cheap embedded processor people, since it means less work for them usually, but sometimes you wind up with closed source tools in a processor gcc doesn't support. In those cases, linux binaries are a luxury. Basically do your research. p.d.o [debian.org] should prove valuable here; I think gentoo has something similar, and Ubuntu I know runs a similar service.
Re:Debian (or derivative) (Score:2)
Definitely Symbian instead (Score:3, Interesting)
Re:URL (Score:5, Funny)
Re:URL (Score:2)
Arch Linux (Score:2)
And ABS is a dream to use!
Ach Linux as a Workstation OS (Score:3, Informative)
perhaps.. Pink Pony Linux? (Score:1)
MontaVista (Score:2, Informative)
Here's a list of boards/platforms [mvista.com] supported by MontaVista Linux.
Does it matter? (Score:5, Interesting)
There are two situations here. One is where you just need a development environment and cross compilers. In this situation, it makes no difference which distribution you use. Use the one you're most comfortable with. I've been working off of a 4 year old Redhat machine for all of my work, and just switched to a brand new Suse box, and I can't tell the difference. Hell, sometimes I use my MIPS cross compiler on Windows with Cygwin.
The second situation is one where you will be trying your software out the dev machine before you have target hardware. In this case, you'll want one whos kernel and the rest of the environment matches what you'll have on your target. You should be putting this Linux system together from scratch. Download a kernel (try the ARM ones), busybox and uclibc. VMWare is also your friend.
hand-holding was very important (Score:2)
I hear it's gotten much better lately. Go with something very recent, like gcc 4.1.1, and you might not feel a sepuku urge.
Re:hand-holding was very important (Score:3, Informative)
Re:Does it matter? (Score:2)
FC4 (Score:3, Informative)
I tried to move to ubuntu, but it was missing some old versions of libraries*
I 'poo poo' all those 'rpm hell' comments. I use the 'smart package manager' and have no problems, ever :
http://labix.org/smart [labix.org]
Unlike apt-get, it's able to install packages of multiple architectures too (useful for AMD64).
* I'm running FC4 on AMD64, so perhaps that was an issue too - I forget exactly.
Re:FC4 (Score:2)
Keep it simple (Score:5, Informative)
Things that you'll want to install:
minicom (a serial terminal emulator program)
tftp server (for embedded systems to boot over the network)
telnet (for things that don't include ssh)
cross-toolchains (*-gcc) and cross-debuggers (*-gdb), you'll have to build these yourself, probably.
Then whatever development environment you want. I personally like using Eclipse with the C/C++ environment, since I don't need to manage makefiles or build scripts by hand and it can target native compiles as well as cross-compiling.
Re: (Score:1)
Re:Keep it simple (Score:4, Informative)
If you're in the "add" camp here, I'd like to suggest you take a look at http://crossdev.timesys.com [timesys.com]. This is the free (in both senses of the word) side of TimeSys, where I work; right now, we have freely downloadable releases for x86 and ppc7xx. These include cross-compilers (glibc and uClibc), host system tools, and over 400 target system packages. All the packages are based on FC5 rpms and built using tsrpm, a GPL tool (also available on the site) that makes cross-compiling most rpms trivial.
If there's something in particular you're looking for, join the mailing list and let us know. We're particualrly interested in hearing about what other processor architecture(s) and target system packages people would be interested in seeing us work on.
Blackfin (Score:1)
Re:Blackfin (Score:1)
Re:Blackfin (Score:1)
Another nod to buildroot (Score:1)
Embedded Linux? Or Linux for embedded dev? (Score:3, Informative)
If the focus is on picking a Linux that you want to embed, Montavista is the popular Linux vendor -- it seems like a lot of silicon and library vendors certify/support development on MV. They provide tools that help you with cross-platform configuration management. Of course, you pay for MV.
If you're trying to go "cheap" and are willing to do the legwork yourself, I suggest rolling your own, building the kernel and building uClibc (or glib if you have lots of memory/storage on your target).
If you're main point is to have a Linux desktop in which to do development work, I would lean toward Redhat, if only because it seems like most software vendors certify the software to run on Redhat. If you're running any hardware in your PC, driver support for the hardware will probably require a specific OS (a JTAG tool that I had, for example, required me to run a certain release of Redhat in order to work).
Good luck.
Only the bravest, needs apply... (Score:3, Informative)
My biggest sympathy goes out to you. If this is your first time, enjoy the additional hairs that will grow on your chest.
How about Familiar? (Score:4, Informative)
I've personally ported the entire Familiar system to another architecture, too - PowerPC (IBM/AMCC 405 series), and Debian-PowerPC for the most part works. Took me a couple of weeks to create the port, which involved repackaging a number of Debian-PowerPC packages for size.
The ability to leverage a normal Linux distribution, especially Debian (there aren't many distributions that have the immense number of architectures as Debian) saves a LOT of time. Recompiling sucks.
Here are some links - I did a lot of work on the build process.
http://download.intrinsyc.com/supported/iso/i-lin
The PowerPC one is similar to the 4.x releases, 5.0 is ARM only but uses a later version of Familiar, so you'll want that.
Generic SDKs (Score:1)
http://www.openembedded.org/ [openembedded.org]
OE is used to produce various embedded GNU/Linux variants like:
- OpenZaurus (Sharp Zaurus PDAs)
- Familiar (various WinCE PDAs)
- OpenDreambox (Dreambox PVRs)
- OpenSlug, DebianSlug, UcSlugC (LinkSys NSLU2 router platform)
If using GNU/Linux is not a strict requirement, you could always give OpenBSD or NetBSD a try. Especially NetBSD runs on many platforms, the latest release supp
scratchbox (Score:2, Informative)
Gumstix (Score:1)
From the trenches (Score:2, Informative)
The big point is - we can have disk storage.
At the beginning, while we were toying with ideas for a diskless OS, buildroot/uClibc was our favourite. It works well hosted on Gentoo,
Crosstool vs. buildroot (Score:1)
At work we're using crosstool to build a solid but fairly large distro for our embedded boards.
So far it's worked ok.
Does anyone have experience comparing buildroot against crosstool?
In terms of speed, memory footprint and features?
Just curious,
Ben
Debian, or possibly Red Hat for eCos (Score:1)
For the smaller architectures I'd seriously consider eCos (see Embedded Software Development with eCos at http://www.phptr.com/promotions/promotion.asp?prom o=1484&redir=1&rl=1 [phptr.com]). The eCos stuff is known to work with Red Hat Linux and Windows. You may be able to get i