Slashdot Mirror


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?"

9 of 56 comments (clear)

  1. Linux From Scratch by jschmerge · · Score: 3, Informative

    The Linux From Scratch project, while not really a distribution is very well suited to this type of task

  2. You didn't think of uClinux? by diamondmagic · · Score: 3, Informative

    http://www.uclinux.org/index.html
    If this dosn't work on your processor, nothing does.

  3. Re:URL by Coke+in+a+Can · · Score: 5, Funny

    Best. Typo. Ever.

  4. Does it matter? by joe_bruin · · Score: 4, Interesting

    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.

  5. Re:Please press any distro. by The+Vulture · · Score: 3, Informative

    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

  6. Keep it simple by Cryptnotic · · Score: 4, Informative

    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.
    1. Re:Keep it simple by Samrobb · · Score: 3, Informative
      You'll need to add (or build) your own cross-compilers and debuggers.

      If you're in the "add" camp here, I'd like to suggest you take a look at http://crossdev.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.

      --
      "Great men are not always wise: neither do the aged understand judgement." Job 32:9
  7. Re:Not Linux by Deorus · · Score: 3, Informative

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

  8. How about Familiar? by tlhIngan · · Score: 3, Informative

    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.

    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-linu x/

    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.