Linux Distributions for Embedded Development?
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?"
The Linux From Scratch project, while not really a distribution is very well suited to this type of task
http://www.uclinux.org/index.html
If this dosn't work on your processor, nothing does.
Wonder what the public key field is for?
Best. Typo. Ever.
You want a Linux desktop/server distribution that will hold your hand and install all the tools for you for embedded software development? It doesn't exist. At this level of work, you should be familiar enough with your tools to install and maintain them yourself. You'll need to know this stuff anyway when you find out that this object file compiled with gcc 2.95 doesn't work with the gcc 3.4 you installed.
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.
Any decent desktop distribution should work great for what you're doing.
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
Use the easiest and most up-to-date distro you can. I personally use Fedora Core 5 for cross-development, but RedHat, SuSE, Debian, Ubuntu or whatever is probably fine. You'll need to add (or build) your own cross-compilers and debuggers. Nothing comes with those tools out of the box. And generally for every target, there is generally a preferred toolchain and set of libraries. buildroot (http://buildroot.uclibc.org/) is very handy for building cross-toolchains, by the way.
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.
My other first post is car post.
> I use Gentoo on my toaster and it runs great. In about 13 years it will have finished compiling Bash
Go and read something about Gentoo Embedded and stop trolling!
We use Familiar as the basis of our distribution. Familiar is nice because it leverages most Debian-ARM packages, so you don't have to do very much compiling, and most of the build system is scripts and easily compilable programs.
u x/
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.