Slashdot Mirror


What Embedded Linux Distros Would You Support?

dannys42 asks: "I work for a cool company that works with, among other things, embedded Linux systems. We'd like to provide an SDK for our customers and will likely support one or two Linux distros, plus Windows+Cygwin as build environments. Up until now, I'd assumed that most corporate developers were using Fedora, simply because of its similarity to Red Hat Enterprise and for its maturity. However, I'm curious to know, for those fortunate enough to develop for embedded Linux, what distribution do you expect to be supported for a build environment?"

83 comments

  1. Debian by halfnerd · · Score: 2, Informative

    And with just some extra care also Ubuntu/Kubuntu/Xubuntu/gNewSense...

    1. Re:Debian by montyzooooma · · Score: 1

      Isn't an embedded system something like a set-top box or a handheld or even a lathe? As much a fan of Ubuntu as I am I can't see much need for it on a CNC machine.

    2. Re:Debian by Yonder+Way · · Score: 1

      RTFQ. Original submitter asked about build environments, not the actual embedded device.

    3. Re:Debian by Solon+Magrizos · · Score: 1

      I will also pro for Ubuntu/Kubunru/etc with some extra work on them which I believe will happen to the near future.

  2. No discrimination by Mr2cents · · Score: 2, Interesting
    what distribution do you expect to be supported for a build environment?"


    Simple: Any. There isn't a reason why it shouldn't work on all distro's. I assume your SDK compiles with gcc and runs on an embedded target, so it would be more meaningful to support a compiler version than an OS. Or am I missing something?
    --
    "It's too bad that stupidity isn't painful." - Anton LaVey
    1. Re:No discrimination by Anonymous Coward · · Score: 0

      I assume your SDK compiles with gcc and runs on an embedded target, so it would be more meaningful to support a compiler version than an OS.It's far easier to support someone if they're running the exact same binary as you. (On the exact same platform as you too, but same binary is a start.)

      And frankly if I have a choice between a pre-packaged, QAed binary for my platform and build-it-myself from source then I'll take the binary. Quick, simple, known good.

    2. Re:No discrimination by Anonymous Coward · · Score: 0

      You obviously have never done any tech support at all.

    3. Re:No discrimination by Mr2cents · · Score: 1

      Ok. Just take a look at http://www.gnuarm.com/. There are binaries for the gcc compiler targetting the ARM processor. Nowhere I see a distribution, just install and go. Just remember that all these distributions are quite similar, and as long as you don't depend on shared libraries, it should work. Especially something like a compiler.

      --
      "It's too bad that stupidity isn't painful." - Anton LaVey
    4. Re:No discrimination by Anonymous Coward · · Score: 0

      There isn't a reason why it shouldn't work on all distro's. [...] Or am I missing something?

      Extensive testing.

      If you're running n tests and you want to support m platforms, you have to run n*m tests - sounds time-consuming, especially if you don't have an m-machine test rig already set up.

    5. Re:No discrimination by BigBuckHunter · · Score: 2, Informative

      Simple: Any. There isn't a reason why it shouldn't work on all distro's

      Support != work

      The gentleman is asking which OS's his company should develope, QA and release for. No matter if it's a paid or free support offering, it would be logical for them to pick the distros that represent the majority of the marketshare for embedded device development. It probably mirrors the most popular distros out there (i think Fed/RH, Deb/Ub, and Suse). This way they maximize their coverage and income and minimize the support costs (especially dev and QA).

      BBH

    6. Re:No discrimination by Mr2cents · · Score: 1

      I understand this might be convenient/safe for the company, but for the customer it's rather annoying if your system runs e.g. debian and the package is only for red hat. What do you do? Make the switch? Use VMware? Search for another product? And then the irritation kicks in: why aren't there any Debian packages? It's both Linux! Give me my software!

      So at least make it available for all distro's, and let the user choose, even if there isn't any official support. Even then, try to help them if they call in. Most of the time it won't have anything to do with the distribution. As I said, it should work, there's no need to port your software between different Linux distributions.

      --
      "It's too bad that stupidity isn't painful." - Anton LaVey
    7. Re:No discrimination by 91degrees · · Score: 1

      Find out whether the company offers unofficial support for other platforms. A good company will help with generic problems but nothing that requires changes for the specific OS. What if there's a distro with a faulty version of a library? It's often easier to ask your customers to use a different version, and depending on the application, the customer will be quite hppy to do so.

    8. Re:No discrimination by DaveV1.0 · · Score: 1
      I understand this might be convenient/safe for the company, but for the customer it's rather annoying
      ...
      It's both Linux! Give me my software!
      ...
      So at least make it available for all distro's, and let the user choose


      Um, no. It may be both linux, but I have the freedom to choose what I support. If I choose to only provide one package type, that is my choice. If you don't like it, so be it.

      If you want to use my product. You should not have any problem with switching distros or just adding a machine that is the proper distro. They are all Linux, right? Shouldn't be too hard, right?
      --
      There is no "-1 offended" or "-1 you don't agree with me" mod options for a reason.
    9. Re:No discrimination by BigBuckHunter · · Score: 1

      So at least make it available for all distro's, and let the user choose,

      And most do, through tarballs, anon cvs, and other methods (binary elf, lib, and a glibc dependency). Unsupported distros are then "free" to mangle it (like Deb does with wine).

      BBH

    10. Re:No discrimination by Mr2cents · · Score: 1

      I consider that quite an arrogant attitude. Whenever possible, the company should listen to the customer's needs, not the other way around..

      Maybe the best solution is to provide a live CD with the software on it, and if you have troubles, test it with the live CD. If it works there, it's a local problem. If not, call tech support. Because, even with a supported distribution, I can still install extra software and/or mess things up. There's no difference really.

      --
      "It's too bad that stupidity isn't painful." - Anton LaVey
    11. Re:No discrimination by Anonymous Coward · · Score: 0

      Take you custom elsewhere if you do not like it. But what commercial outfit would use piss poor debian and their annoying custom changes?

    12. Re:No discrimination by DaveV1.0 · · Score: 1

      You are thinking like a customer and not like a company. From the company's point of view, if a customer wants the software bad enough, the customer will do what is needed to run the software. Kind of like why gamers upgrade the systems every few months to handle the demands of the latest games.

      --
      There is no "-1 offended" or "-1 you don't agree with me" mod options for a reason.
    13. Re:No discrimination by Anonymous Coward · · Score: 2, Insightful

      Regardless of what you actually support or what actually works, one factor to take into account is that to many developers (myself being one) prominently announcing on your site that you only support a certain setup just makes you look unprofessional and incompentent in my eyes.

      On the other hand, consider a note such as: "Here at XYZ corp, we have standardized on Fedora Core 6, with several older Fedora linux machines still in use. While we have no reason to believe our environment won't work on any reasonable linux, and while we will try to assist you, please understand that we may not be able to replicate your problems if you are not using Fedora."

      That seems reasonable and balenced. If I am researching a tool and the first thing I see under "support" on the web page is a bunch of restrictions, it tells me that when the managers and employees at that company think of "support" the first thing that comes to their minds is a list of excuses as to why they shouldn't offer it.

      Support is horrible at most software companies, because managers (and others) preceive it as a cost with no benefit them -- they want to minimize it, and treat it like a government tax. They give as little as they can get away with. Obsession with a bunch of restrictions on support is similar to the list of requirements for a mail-in rebate: somebody's trying to create a loophole.

      A business with a more mature view looks at a support issue as "someone is not able to make money using my product, and that ultimately threatens MY being able to make money. This must be corrected immediately, and steps must be taken to make sure it never happens again."

      Companies often develope those support limiting policies in reaction to support cases that have cost them truly huge amounts of money. So, if you are going to implement the "reasonable" support policy, you have to be prepared to enforce it upon yourself when a support case becomes unreasonable. This can include pointing out to customer that a cheap ass Dell box ready to be installed with exactly the software you recommend only costs $270. It can include telling a particularly neurotic customer to go fuck himself.

      Just keep in mind, that when I as a developer look on your web site and see a bunch of nonsense like "only Pentium 4 or greater on RHEL 4 with all patches, on a IDE disk non-RAIDED with exactly model XXXX rev B video card" I move on.

    14. Re:No discrimination by dextromulous · · Score: 1

      Before trying to get the QNX development environment set up on something other than RH9, I would have said the same thing...

      That case required a lot of things set up in just the right place, as well as some older version of JRE that was difficult to get if you weren't installing on RH9. Since then I've developed for an embedded Linux system that needed:

      • An old version of Python to be installed as the default (which is incompatible with the version of Python that every FC4 utility needs)
      • An old version of TCL/TK-devel or something like that
      • Just a dash of pixie dust
      --
      There are two types of people in the world: those who divide people into two types and those who don't.
    15. Re:No discrimination by dannys42 · · Score: 1

      On the other hand, consider a note such as: "Here at XYZ corp, we have standardized on Fedora Core 6, with several older Fedora linux machines still in use. While we have no reason to believe our environment won't work on any reasonable linux, and while we will try to assist you, please understand that we may not be able to replicate your problems if you are not using Fedora."

      This is in fact the sort of support I'd vote for as well. What I actually meant with the question, though, was what distribution(s) should we test our build environments in. I'm personally using Fedora Core 5, but what're others in this field using?

    16. Re:No discrimination by dannys42 · · Score: 1

      Our SDK does have binaries for GCC. But we also have a number of build tools that make up the environment. Some of these may depend on other things on the system, eg. python, libxml and the like. So while I'll happily include tarballs for people not using our recommended distribution(s), we still do need to pick something and test with it.

  3. Do like the Mozilla foundation by Svippy · · Score: 1, Insightful

    Firefox comes in single binary tarballs. But yet the work on every distro. Why can't you just do it like them?

    You could also have some special binary packages for a range of distros.

    --
    Clicked pie.
    1. Re:Do like the Mozilla foundation by solid_liq · · Score: 1

      Ahem, he means statically linked libraries. Somehow, I don't see that working well for and API.

      However, the community of programmers who know what they're doing tend to prefer Debian or one of its derivatives. I'd personally start with supporting Slackware (due to its "pure" nature), then ensure it works with Debian. If you do that, you'll probably have few complaints. The people who use RHEL are more often admins, not coders. Who cares about the admins? You? Why would you? They're not coders, now, are they?

  4. Windows forever by badevlad · · Score: 0, Troll

    Hey man, move to Windows better!

  5. Distro or package handler? by richie2000 · · Score: 1

    RPM and source tarball should actually suffice.

    It's pretty straight-forward to create an ebuild (for Gentoo) if you have a well-behaved source tarball and a static download location and I imagine the Debianites can create apt-get packages with similar ease as needed.

    --
    Money for nothing, pix for free
  6. Please don't tie it to a distro by jnelson4765 · · Score: 4, Insightful

    I prefer Fedora, my co-worker prefers Slackware - and we are equally productive. Supporting as many distros as possible would be a great goal - if you keep it as a completely seperate installation and don't try to "integrate" it into the host OS (I'm thinking of some Samsung printer drivers as a particularly bad example).

    For example, Plone ships with its own version of Python and Zope to keep the host OS's versions of either from breaking the application, and lets you update the host OS independently of the application. This is a good thing.

    --
    Why can't I mod "-1 Idiot"?
    1. Re:Please don't tie it to a distro by idlake · · Score: 2, Insightful

      For example, Plone ships with its own version of Python and Zope to keep the host OS's versions of either from breaking the application, and lets you update the host OS independently of the application. This is a good thing.

      It's only a good thing if you don't actually want to use any add-on packages. As soon as you want a Python package that your Plone package doesn't support, you have to manually install it. And if everybody did what Plone did, you'd have to install the extra package separately for each of the "own versions of Python".

      In fact, good Linux distributions integrate Plone with the distribution-standard version of Python. That's a good thing; shipping Plone with a custom version of Python is an evil crutch.

    2. Re:Please don't tie it to a distro by kripkenstein · · Score: 1

      For example, Plone ships with its own version of Python and Zope to keep the host OS's versions of either from breaking the application, and lets you update the host OS independently of the application. This is a good thing.

      Of course, overdoing this leads to wasted space and other issues. But done right it's very useful. Another example besides Plone is OpenOffice.org, which includes it's own Python version.

    3. Re:Please don't tie it to a distro by HomelessInLaJolla · · Score: 1

      I would use LFS as an embedded OS.

      --
      the NPG electrode was replaced with carbon blac
  7. DamnSmallLinux is worth checking out by Anonymous Coward · · Score: 0

    DSL is designed to work off, among other things, compact flash cards. Given that those cards have a limited number of write cycles, DSL has developed a 'frugal install'. On boot, the contents of the card are read and then everything happens in memory thereafter. The process is a lot like booting a chip from an eprom. So, there is a process that is very common/prevelant in the embedded world and DSL provides an example of how to do it.

    DSL is based on Knoppix which is, in turn, based on Debian. www.damnsmalllinux.org

  8. Did you already look around on linuxdevices.com? by modir · · Score: 2, Informative

    I can't really tell which distro you should choose. But I can give you an advice to look around on http://www.linuxdevices.com/. There you have the best overview on what is going on in the embedded Linux market. (imho)

  9. Pick A Platform... by thegrassyknowl · · Score: 1

    ...and support it.

    You would likely pick the one or two platforms you are most comfortable with - simply because that makes it easier to debug any potential problems.

    You should smoke test your environment on several platforms to make sure it does at least the bacics properly. After that, you should thoroughly test on one or two supported platforms.

    This way, you can recommend a platform to your customers that you know will work (for example RHEL4, update 2) and know they will get a working environment if they do a sane install.

    --
    I drink to make other people interesting!
    1. Re:Pick A Platform... by BadAnalogyGuy · · Score: 1
      It's an SDK, so I am a little confused as to the actual problems he'd face.

      Deliver the following and it shouldn't matter much what the user is running:

      compiler - don't let the user their own compiler tools since they may not work

      linker - need one of these, so give them one that you've verified correct

      binary builders - some embedded systems need you to strip the binaries after linking. Some don't. If the users need to do it, give them the tools

      environment script - need to create a buildable environment, and there's no sense in polluting the system ENV

      source tree - headers, source files as needed in a nice, easy to understand folder hierarchy

      libraries - don't rely on the user to supply libs. Always ship supported libraries so that you don't get into a version conflict with the system

      other stuff - since you're trying to do a valueadd, you have to decide what goes here, but since your tools may rely on the system to provide certain tools, this is also where you'll probably run into the most incompatibility. Do your best not to rely on non-standard tools unless you're willing to provide them yourself in the SDK

      With the exception of the value-added toolset, there isn't much that would be non-portable since you'd by shipping a self-contained SDK with all the necessary tools to build and deploy. The value-added software will definitely give you headaches and should be designed for cross-compatibility wherever possible, but if you need to restrict supported platforms, this is where you'll need to restrict. Talk to your customers and see what 1) your biggest customer is using and 2) what the majority are using. Target those or help them migrate to your supported system if your SDK won't run on theirs.

      Since many shops use Windows, you'd be surprised at how much mileage you'll get out of your Cygwin port. For all its faults, Windows provides a usable standard platform that facilitates the use of tools, even to build for other operating systems.

    2. Re:Pick A Platform... by thegrassyknowl · · Score: 1

      You'd be surprised at the differences in the standard tools between distros. The difference between FC3 and FC5 was enough to completely break our embedded toolset. Slight shared library incompatibilities in the system libs (not the embedded ones). Various other standard tools can change their incarnations between distros. Install didn't work in FC5 because somewhere along the line an option our scripts used disappeared on us.

      You really do need to pick one or two platforms for full testing - Windows may as well be one of them (unfortunately).

      --
      I drink to make other people interesting!
  10. Answer: RHE3 by Anonymous Coward · · Score: 0

    Up until now, I'd assumed that most corporate developers were using Fedora, simply because of its similarity to Red Hat Enterprise and for its maturity. However, I'm curious to know, for those fortunate enough to develop for embedded Linux, what distribution do you expect to be supported for a build environment?

    When I worked for ARM (quite recently) they could work with most platforms, since all the heavy lifting was submitted to a cluster of machines and if you wanted a specific OS/distro/version you could specify it and the job would go to that machine (e.g. bsub -I -r "solaris" foo would queue command 'foo' to run on a solaris box).

    However, the machine they had the most of was RHE3 (Red Hat Enterprise edition 3), so that's probably a good one to target.

    Other good ideas for your tools include:
    * Batch/command-line mode, so your tool can be called by a script.
    * Parallelisability, if your jobs take more than ~10 minutes on a high-end machine. It's easy to get 4 * 3GHz cores, but hard to get 1 * 12GHz core. Xilinx place and route, this means YOU.

  11. honestly, if you want to pick 2... by jimstapleton · · Score: 1

    I'd go with one Linux and one BSD, give your customers more options.

    The reason for this is that both have thigns that they are quite good at, and both have things they lack.

    I'd probably say one of the following for Linux:

    Fedora (popularity, but it's bloated, probably not good for an embedded solution), Ubuntu (more friendly/reliable IMO), and Gentoo (more reliable than the other two in my oppinion, friendlier in some ways, less so in others).

    --
    34486853790
    Connection too slow for X forwarding? Try "ssh -CX user@host"
  12. Centos by Kangburra · · Score: 1, Flamebait
    Fedora, simply because of its similarity to Red Hat Enterprise and for its maturity.


    No that would be Centos, not Fedora.
    --
    Common sense is not so common
    1. Re:Centos by bombshelter13 · · Score: 1

      No, it's Fedora. These are developers, developing a product that will be released in the future, not the present. Fedora resembles the version of RHE that will be shipping when their product is released far more closely than CentOS. CentOS just looks like a crappy, year old version of the OS their product will be running on.

    2. Re:Centos by Anonymous Coward · · Score: 0

      No, it's Fedora. It may not be as mature as RHEL but it's more mature than other bleeding edge distros as it's got more glue to keep all the parts together. It's better integrated and works better. Also, it will eventually become a release of RHEL.

    3. Re:Centos by Anonymous Coward · · Score: 0

      fedora doesn't guarantee binary compatibility with redhat enterprise linux, centos does. centos is a linux distribution built from redhat enterprise linux SRPMS.

  13. Gentoo by Anonymous Coward · · Score: 0

    Gentoo is ideal for embedded systems. No other distribution gives you such fine grained control over what to bring in and what to leave out. This is critical for resource constrained devices.

    1. Re:Gentoo by Goeland86 · · Score: 1

      I'm a gentoo fan as well, but for an embedded OS, I don't know if it'd be that great. For one thing, Gentoo's philosophy is "bleeding edge". If you're dealing with embedded software that's never going to be on a network for updates (think medical devices), then Gentoo's no good. I would see gentoo in an mp3 player (constant link with a PC for updates), but not, say, in a cardiogram machine, a mica-style mote, or other small non-networked devices. The problem is that Gentoo fixes bugs by using the next available version of software, which works well, up to a point. It is the unfortunate truth that a new software version fixes bugs, but introduces new ones (i.e security is never tested against brand new code, gentoo has very little testing time). Usually less, of course, but still not good enough for an embedded OS.
      Sorry, but for embedded stuff, a binairy based distro is probably safer (bundle the source with it, to give choice, and to comply with the GPL) for an embedded application.
      My own $0.02 of opinion.

      --
      ---- I am certain of only one thing : I know nothing else.
    2. Re:Gentoo by silpol · · Score: 1

      oh, yeah, make and all other tools running on tiny target box - fine grained control Gentoo style in Real Life ;)

      --
      this field has been intentionally left blank ;)
    3. Re:Gentoo by wolf31o2 · · Score: 1

      Funny that you say this considering I am currently under contract with a company designing a medical device that is using Gentoo as the basis for the operating system on both the medical device, as well as the operating system for the developer workstations used to design the software.

      Remember that there's no more validation done for security with Red Hat, SuSE, etc before they release their software. The only guarantees that a binary distribution makes is that the software they've provided works with each other and is as usable as possible. I think you need to realize that almost anyone building embedded devices does complete customization to the environment used to run their device. Look into the embedded space from Red Hat and you'll find that almost nobody is using Red Hat Enterprise Linux for their devices, as it is much too large and too generic. Instead, they home grow their own "distribution" which has exactly what they need and nothing more. My entire point is that Gentoo is better served in doing this, since that is a primary design goal of Gentoo, rather than binary distributions whose primary design is a coherent single product.

    4. Re:Gentoo by Goeland86 · · Score: 1

      Point taken. I probably should've shut up in the first place, the only embedded programming I've done was on MicaZ motes, and that was using TinyOS, which has been refined over time, developped purposely to be a stable code base that you could then assemble into a realtime OS. TinyOS gave the impression that the embedded programming evolved, yes, but that released code would always be stable. Maybe it's true for TinyOS, but from your description, Linux embedded is more like regular gentoo development anyway. I just don't see you wanting to update all your code base daily, as you develop an app for a device... But maybe it's just me.

      --
      ---- I am certain of only one thing : I know nothing else.
  14. Not a Distro, but instead a Target: GP2X by torpor · · Score: 1

    I would say it would be very nice of your SDK to support building for the GP2X [wiki], which is an ARM-based linux box with its own unique set of libs and tools .. which should be very easy to support as a target/API bundle, as a matter of fact ..

    The reason for this is obvious: the GP2X is cheap and easily available as an embedded Linux platform, and thousands of geeks are discovering it every month it seems. Definitely one of the more interesting embedded Linux platforms around, and certainly: very accessible. Make your SDK fit in that fold and you've got a winner, I would say.

    --
    ; -- the corruption of government starts with its secrets. a truly free people keep no secrets. --
    1. Re:Not a Distro, but instead a Target: GP2X by TerranFury · · Score: 1

      Man, that's cool.

      Now if there were something like that which had wifi and built-in GPS, it would be the most awesome swiss-army-knife of all time.

      Granted, this is almost entirely off-topic. But it is damn cool. Thanks for bringing it up!

  15. BSDs? by SirCyn · · Score: 1

    Give one of the BSDs a try. FreeBSD and NetBSD are both extremely flexable for embedded installs (Free more so to x86 based systems). Linux seems random and haphazard after you've worked with a BSD for a while.

  16. Pick the biggest and support it by johnjaydk · · Score: 3, Insightful
    Disclaimer: I do embedded stuff for a living.

    For any semi-pro work in this space, You'll have a dedicated development host (read PC) that runs EXACTLY the Linux distro that was supplied for (and together with) the SDK. Time is just to short to dick around and customize for 17 different linux distro's.

    Case in point: I recently picked up an ARM5 development kit from Arcom. http://www.arcom.com/entry-level-devkit-linux-vipe r.htm and it came with a Fedora Core 5 DVD and an SDK for core 5. So I slapped the whole thing on an empty PC and was ready to rumble in an hour or two. I didn't even update the core 5 install (behind firewall etc.) in order make certain that the SDK was an exact fit.

    That's (unfortunately) how You do it on a linux host. Otherwise You can take Your chances with the hell of CygWin and Windoze.

    My point is: Chose one distro, ship it together with Your kit and make absolutely sure that it works 100%.

    For what it's worth, I think Linux blows chunks as an embedded RTOS. It's too damn big and the real-time performance just isn't there. Go with http://ecos.sourceware.org/ (free), VxWorks or QNX.

    --
    TCAP-Abort
    1. Re:Pick the biggest and support it by bensch128 · · Score: 1

      Actually my experience says that it's better to pick a cross compiler toolchain and stick with it.
      We have to support arm9 and x86 embedded platforms and we do on the same machines using debian testing with two separate toolchains. CXX=... ./configure ... is the shit!!

      Works like a charm with some messing around required.

      Cheers
      Ben

    2. Re:Pick the biggest and support it by silpol · · Score: 1

      with eCos, QNX and stuff like that you won't have all community-developed bunch of SW - if you stick e.g. with Debian/Ubuntu just modify slightly CPU/power hogs like desktop SW, and it is ready. Start to collaborate with Ubuntu - THAT IS the way

      --
      this field has been intentionally left blank ;)
  17. my experience. by nblender · · Score: 2, Insightful
    I work in the embedded space. Currently linux/mips64 and linux/x86. In the past I've done NetBSD/evbarm and NetBSD/ppc405, Linux/arm. Also QNX/ppcbe. I'm largely platform agnostic but in the various environments I've worked in, I can tell you that you will encounter many engineering departments that do all of their CAD on Solaris/sparc and the software guys do their builds on Solaris/sparc machines while using Linux desktops... So I believe you'll find greater market acceptance if you at least offer a Solaris SDK as well. If you can confirm your toolchain works on a *BSD, then you will have all the bases covered. Nothing I hate more than to see some documentation that says "system requirements: RedHat vFOO". Embedded developers are typically smarter than your average bear and are happy to install using a tarball instead of some proprietary packaging mechanism.

    Also, provide a sample build system that developers can "include" in their Makefiles and set one or two environment variables that are target dependant (FOO_ROOT and FOO_TARGET for example)...

    Find out what Montavista is doing and avoid it all. How are these people still in business?

  18. Embedded Distros? by Lumpy · · Score: 2, Insightful

    So far nobody has mentioned an embedded distro. Last I checked most have died off outside Damn Small Linux. I personally changed completely to Slackware for embedded use as it's easy to mold into the size and shape you need.

    I really liked Vector linux but it is basically small Slackware. embedded Linux distro? I recommend wrapping your own. It's really easy and you get far more performance out of your device than any distro can give you.

    --
    Do not look at laser with remaining good eye.
  19. Which makes me wonder... by Tarlus · · Score: 1

    Has anybody tried combining package managers in a distro? I think combination .rpm and .deb support would be really nice. I mean granted, the Debian lineage has alien to convert .rpm's to .deb, but it isn't 100% effective. I don't know if the Red Hat lineage has an equivalent to install .deb packages, since those aren't as common as downloads on websites.

    But, yeah, I'd love to have the capability to manage both types of packages in tandem.

    --
    /* No Comment */
    1. Re:Which makes me wonder... by richie2000 · · Score: 1

      I haven seen people report using Portage (Gentoo's package manager) to install RPM ("emerge rpm") or dpkg ("emerge dpkg") for Debian packages but I have not tried either myself yet. Package managers are just userland tools and as such should be fairly portable.

      --
      Money for nothing, pix for free
  20. I recommend... by helmutvs · · Score: 2, Informative

    MontaVista Linux. I work for a large networking company that uses this as the embedded OS in our switches - it is very reliable. It's not free, however, but this distro is used in several industries and by many other successful companies. They also provide good support. Here's a list of boards and platforms supported by MontaVista. Hope this helps you.

    --
    There are no uninteresting things. There are only uninterested people.
  21. embedded linux by tsandholm · · Score: 0

    There are quite a few distributions available, montavista, etc.
    Even gumstix has their own build process; a very nice system for rebuilding the embedded linux in the gumstix flash.
    I'm very fond of "diet-pc"; it was designed for embedded applications; based on busybox, VERY easy to customize, and the author even includes example images for X-terminal clients, file servers, music players, etc.
    Diet-pc would be my first choice, followed with Debian. I wouldn't even consider using redhat.

  22. Re:The fact that this is even an issue by Anonymous Coward · · Score: 0

    I suppose your code runs just fine on Windows CE too?

  23. Why and Why Not by spaceyhackerlady · · Score: 1

    The only reason to tie your SDK to a distro is to limit your support exposure. There is no technical reason to do so. Please try to be sensible about this: what you're doing, after all, is providing a tarball of build tools, and a tarball of libraries.

    Me? I play with PalmOS (68k/gcc toolchain) and uClinux on Slackware. I built all the tools and libraries from source. They work fine.

    ...laura

    1. Re:Why and Why Not by dannys42 · · Score: 1

      I have no problems with people wanting to use the SDK in other distributions. But we have to pick and choose which ones we want to test with and "gaurantee" will work. Also, SDK may have been a poor choice of words, as it includes a build environment (toolchain, scripts, etc.) to make it easier for developers working with our kit. This will include many different tools that might depend on various system utilities, scripts, and libraries. Version incompatabilities, and differences in even the location of binaries could cause problems. So in effect, the distribution really does matter.

      It's cool that you built your own toolchain and such. From what I've gathered, though, most people in the embedded space don't like to do that, as they want/need to get on with their actual project. I don't mean that in any disparaging way, I've gone through a lot of trouble getting our toolchain compiled in a nice way for our kit, so I know how much work is needed to do that.

  24. I second the vote for Ubuntu by drinkypoo · · Score: 1

    Costs the same as any other Linux, works better than most. Readily available (they'll even send you a CD for free.) You might even think of making your own LiveCD.

    --
    "You're right," Fisheye says. "I should have set it on 'whip' or 'chop.'"
  25. Realtime (RTAI, etc), for Racecar Brain by TerranFury · · Score: 1

    This is actually something I need to deal with coming up. I'm working on a project at university building a hybrid-electric racecar, and I'm going to be using a single-board computer for closed-loop control on some systems, and for data acquisition.

    Have you [or anyone else reading] compiled in and used the RTAI extensions? I need to do control at a reliably constant sample rate without any latency. Have an eperience with real-time Linux?

    1. Re:Realtime (RTAI, etc), for Racecar Brain by b0s0z0ku · · Score: 1
      This is actually something I need to deal with coming up. I'm working on a project at university building a hybrid-electric racecar, and I'm going to be using a single-board computer for closed-loop control on some systems, and for data acquisition.

      Tour de Sol? BTDT 4 years ago. I think you'd probably be better off with a network of PIC microcontrollers running real-time code. Faster and less prone to crashing or slugging. In addition, they have built in analog I/O capabilities. If you're afraid of assembly language, they can be programmed in C. Use a PC for the final data acquisition stage and for human interface (running digital dash, etc), but don't use one for critical tasks.

      -b.

  26. Some clarifications by dannys42 · · Score: 2, Informative

    When I speak of "support" for a distribution I'm talking more about testing to ensure the SDK works out of the box. I have no intention of forcing our SDK to be tied to any given distribution. And I agree it'd be great if it worked on all distros. But the fact is, it's unreasonable for most companies to test across many distros and versions of distros like that, especially ones that actual developers in our market don't use. Hence my initial question... (which ones do people use?)

    Also, when I talk about the SDK, I'm not speaking mearly of tarballs of C compilers and libraries. There's a number of convenience scripts and tools we've added to give you a nice easy to use development environment. This of course relies on a number of system tools and libraries being available. Some of them standard, some not.

    I can of course add these tools as part of the SDK. But going that route quickly ends up in making your own distribution. At this point it makes sense to just take a distribution and use that.

    1. Re:Some clarifications by rur · · Score: 1

      Have you considered creating an image for VMWare player/User Mode Linux/... and you'll have an instant development environment ready! You (your company) make the choice, no need to support several environments.

    2. Re:Some clarifications by bit01 · · Score: 1

      As an embedded developer I'm not actually particularly interested in what Linux flavor you support/test. They're all wrong. As long as you have a lowest-common-denominator tar.gz package with well documented dependencies that's all I want.

      I've tweaked my environment to support all the different jobs I do, including running your package. It's configured for my tastes and needs. I want to adapt my process the absolute minimum necessary to run your process. I'd like to install your tar with installwatch and be done with it.

      Depending on the complexity of your SDK you probably do not want to vmware it; vmware is a hack that makes it difficult for any program running in it to interact with anything else on the system.

      If I were in your shoes I'd set up 3-4 environments (e.g. recent, stable debian/ubuntu, redhat, bsd, solaris), tar an SDK and try it on each platform. If there's anything missing on each platform see if it's in the standard repositories. If it's not add it to your tar and try again. Document as you go.

      Incidentally, avoid binary SDK's if you can; source means your customers can solve their own problems if they need to and not waste your time. I've use a lot of different SDK's on Linux/Unix/Windows over the years and the number one problem was old, buggy binaries that were not compatible with my up-to-date development environment. I avoid vendors that make it difficult for me to solve my problems.

      ---

      WGA. Guilty until proven innocent. For millions. Again and again.

  27. Insulation from distro by said_captain_said_wo · · Score: 1

    One way to look at the question of which distro to support is to ask what your SDK depends on in the host OS.

    In general, the more you insulate your build environment from the OS, the better, and the greater number of distros you will be able to support. There are several ways to do this, like chroot'ing your build tools to avoid using any host binaries, prefixing $PATH when running your tools, etc. More tricks will be needed depending on how cross-friendly all the sources you want to build are. Config-less, static Makefiles which call 'gcc' may need to be patched or told what 'gcc' means.

    Our tools run on a handful of distros and we usually run into minor issues like what /bin/sh points to (bash vs rnd shell) and missing -devel packages.

    Supporting Cygwin may go fine at first as you generate cross tools and can compile packages, but you probably will run into trouble at some point when you try to build target filesystems or release ISOs and will need certain tools which have not made it to Cygwin. People say they want MSWindows support in a checkbox kind of way, but it's not such a bad thing to require Linux for development.

    Good luck!

  28. Better yet... by rur · · Score: 1

    create an image for VMWare player/User Mode Linux/... and you have an instant development environment ready! You (your company) make the choice, no need to support several environments.

  29. The big ones by mnmn · · Score: 1

    I suggest support the big ones plus a generic .tgz file. Do all our primary testing and development of SDKs on the TGZ first.

    The big ones are redhat, suse and debian.

    So in effect you're making RPMs, DEBs and TGZs. Let the TGZ be as generic as possible.

    And if you're releasing its source code, please test it over PowerPC, AMD64, ARM9 at least, or let the sources be as generic as possible not tied to endianness or word size.

    This should cover everyone out there.

    --
    "Give orange me give eat orange me eat orange give me eat orange give me you." -Nim Chimpsky
  30. *Desktop* distro, not embedded by zbik · · Score: 1

    The poster didn't ask about embedded distros -- i.e. the Linux distro running on an embedded target. He wants to know what developers have on their desktops, which is probably something completely different.

    I would recommend shipping a live CD with your tools pre-installed. It would be straightforward for you to master a Debian-based CD based on Morphix and/or TROM. This allows your less sophisticated users to get off the ground quickly developing with your SDK. It's also good for evaluations, as people will want to make sure they can at least talk to their embedded development boards first.

    For most developers, providing a src.tar.gz and an RPM is adequate. I recommend RPM's because most people too dumb to build a source tarball are probably using RedHat/Fedora. Bonus points for .deb but it's really not necessary to provide multiple packaging formats.

  31. More Clarifactions on Embedded SDK by dannys42 · · Score: 1

    Guess I should have added more info in my original post.

    The question actually was asking what Host distribution we should support, not what Embedded targets to compile for.

    1. Re:More Clarifactions on Embedded SDK by LWATCDR · · Score: 1

      I think Fedora, OpenSuse, or Ubuntu are all good choices. I would suggest that you think really hard about VMWare player. You could create a VMware image and distribute that to your users. They could use it on any Linux or Windows system they want.
      I really find the new Mac really interesting. Put Parallels on it and and then install Windows and Linux in VMs.
      Sounds like the ideal solution for cross platform development.

      --
      See my blog http://ilovecookes.blogspot.com/ for light hearted technical information.
  32. Gentoo by wolf31o2 · · Score: 1

    I'm sure that this will seem a bit obvious due to my close ties with the distribution, but Gentoo should be a good match for you. Gentoo has support for embedded systems, as well as one of the widest set of supported hardware platforms in the Linux world. It is source-based, which makes creating your modifications and customizations much easier. It has tools like catalyst, which allow you to easily build a customized distribution of your own, based on Gentoo. Gentoo is also free, which can be a big plus.

    Essentially, your best solution is a distribution geared specifically for your devices. I think that Gentoo works as a good platform for basing your distribution from, as it is simple to learn and understand, as the entire system is very open and transparent.

  33. FreeBSD? Get real. by Generic+Player · · Score: 1

    FreeBSD doesn't run on any embedded platforms. Try not to let your obvious freebsd bias interfere with common sense. NetBSD is certainly an option, as is openbsd which at least supports a few embedded platforms like arm. But freebsd has no embedded ports, the closest you can get to embedded with freebsd is small PCs like soekris.

  34. Your question makes no sense by Anonymous Coward · · Score: 0

    What you are doing with an embedded linux is targetting a certain environment - ie a kernel release, a version of glibc (or compact replacement depending on storage), and a collection of hardware.

    I would suggest you nominate the version of gcc and any supporting tools required, and simply require those in whichever desktop linux release people use.

  35. Debian and Slackware by Anonymous Coward · · Score: 0

    They're the only two distros one could point a finger at and say "this is Linux". All others, including Ubuntu, RedHat, SuSE, Mandriva etc. despite being great products are less community supported and too tied to the company behind them. The Microsoft-Novell (SuSE) deal should ring a bell.

  36. openembedded.org and nslu2-linux.org ... by bzhou · · Score: 1

    Are two leading embedded linux sites, with cross build environment setup that covers lots of boards/devices.

  37. The perfect embedded linux distro: by crhylove · · Score: 1

    Would easily navigate between camera, ipod, cell phone, and nintendo emulator. It would have a 802.11g chip hard coded for use at all times. It would be small, like the latest samsungs at T-mobile. When you plugged it into it's USB charging dock, you could use it as a computer (complete with USB keyboard, mouse, and USB to VGA monitor hook up, gamepad, and external speakers) and it would have rudimentary email/web. It would do ipod better than ipod, because it would default to using un-drm'ed mp3 files, which you could also use for personalized ring tones, alarms, text message receipts, and even emails. When plugged into the dock, it would have the exact same menu structure as windows, so even grandma could use it. Six simple shortcuts on a clean desktop: Firefox, Thunderbird, Photos, Movies, Games (preferably good ones, like nintendo games in an emulator, or something), Gaim, and Documents. Let's skip the "My". I always hated the "My". Just seems stupid, especially if you're on somebody else's "phone".

    It would cost less than $100 including hardware (not including external usb keyboard, mouse, speakers, monitor, and gamepad), have a few gb of storage, decent picture quality, and an easy way to back itself up (addresses, video game scores, pictures, mp3s, xvid, email, phone numbers, buddy icons, etc.) over any old wifi connection.

    The perfect linux distro (and hardware) would quickly then shut down sony with it's root kits, apples with it's drm, and microsoft with it's monopoly, bloat, and lack of a GPL. Everyone wins. I'll pre-order one today.

    Besides the corporate monopolies squeezing the life out of every person, plant, animal, and economy on the planet, is any of this really THAT unrealistic? Is there a distro that works like this already? I surely haven't found an even half-assed close cell phone yet, which is tragic, since the SDA is so damned close. If it charged and also hooked up to those external peripherals via that little USB port, it'd be nigh on perfect, actually. That and have a better OS. LOL

    rhY

    --
    I hold very few opinions. I hold information based on observation and fact. If you wish to disagree, please use facts.
    1. Re:The perfect embedded linux distro: by dannys42 · · Score: 1

      That's a fine idea, but if you had to pick one distribution to be your host platform, what would it be for this "perfect embedded linux distro"?

  38. What about ... by b0s0z0ku · · Score: 1
    Releasing either a LiveCD (which uses a HDD partition for data storage) or a VM image with the development environment and Linux distro preinstalled? That way, you can very tightly control how the devkit operates.

    -b.

  39. Re:The fact that this is even an issue by dannys42 · · Score: 1

    Actually that's not true. If you're planning on supporting Windows 95/98/2000/XP, you still need to test across each one. This is especially true if you're planning on supporting both the 95/98 and 2000/XP eras as they're radically different systems.

  40. Dunno.... by crhylove · · Score: 1

    I don't really like ANY of the distros to date. I'd probably hire a couple of bad cyber bad asses, and then heavily modify Debian.....

    rhY

    --
    I hold very few opinions. I hold information based on observation and fact. If you wish to disagree, please use facts.