Which Embedded Linux Distribution?
Abhikhurana writes "I work for a company which designs a variety of video surveillance devices (such as MPEG4 video servers). Traditionally, these products have been based on proprietary OSs such as Nucleus and VxWorks. Now, we are redesigning a few of our products and I am trying to convince my company to go down the Linux route. Understandably, our management is quite skeptical about that and so I was asked by our CTO to recommend a few RTOSs which have mature networking stacks and which work well on ARM platform. I know that there are many embedded Linux based distributions out there. There are commercial ones such as Montavista, LynuxWorks, free ones such as uclinux, muLinux and some Linux like distros such as Ecos. What is the most stable and best community supported embedded Linux distribution out there?"
It seems openembedded.org isnt as well known as it deserves.
Openembedded has;
- Been around for a number of years
- Has a strong developer community
- Is used be a few commercial projects, notably openmoko.
- Can builds its own cross compiler
It allows you to pretty easily define your own distro and build an image for it.
Just a friendly reminder, but don't forget to tell your higher-ups that using a *modified* Linux in their product means they have to release the source. Don't forget that, or you may be in for a nasty suprise. I don't know how much of an embedded system NetBSD is, but if putting out the source is going too far for them, that could be an option. If they don't mind that, then by all means go ahead.
(karma shields to 120%)
"I think an etch-a-sketch with an ethernet port would beat IE7 in web standards compliance."
If your company if comfortable with VxWorks, how about Wind River's offering...
http://www.windriver.com/announces/rtlinux/
It is quite possible that this company doesn't want anyone to know about what they've done to the kernel to work better on their hardware or for their purpose. If I start modifying the kernel to be more efficient in handling a widget-smashing box, then put it into my super-fancy widget-smashing box without disclosing the fact or releasing the code, I am in a lot of legal trouble, because the GPL says that I have to release the modified versions of any GPL code I've used. I can still write the widget-smashing code and make it 100% closed, it's just the kernel I have to be careful about. It's not that I'm trying to steer them away from using Linux in their product, I'm just making sure they know what they're doing. Once again, I have no idea how anal these people might be, but if they are, this is stuff they should be aware of.
"I think an etch-a-sketch with an ethernet port would beat IE7 in web standards compliance."
whatever, just make him a foe so he's automatically modded down for you.
If I recall, there were 3 things that GPLv3 was originially going to accomplish, all of which had to do with ways people were perceived to be abusing GPLv2:
- address patents and how they may affect distribution of code
- close the TiVo problem of tying hardware to a software revision (where people can't truly modify their own GPL code on their own device)
- close the ISP loophole where you aren't really "distributing" your code, so you don't have to share it
We mostly hear about patents, and we heard a bit about the hardware issue when Linux objected to a GPLv3 revision. Not so much makes the news about the ISP loophole. I am not sure what the latest draft of the license does in this regard.
When it comes to hard RT extension (even in userland), I tend to prefer Xenomai over RTAI. Xenomai has better non-x86 support (ARM is there), nifty so-called skin support for legacy API's (VxWorks, uITRON, ..), and very good community.
Talking about distro, ELDK is best what comes to mind. This is industrial grade software, free as in beer and speech, but with commercial support if needed. The toolchain is excellent. What goes into the flash image must be hand-picked because only you know the necessary stuff.
If you are in D/A A/D business, then have a look at Comedi, it is also RT enabled by the comedi-rtdm project.
All these tools/projects are used and backed by industry. I'm a simple user of these tools, and they make my day life happy.
Love salty crackers? catchy electronica? Try !
- eCOS http://ecos.sourceware.org/
- RTEMS http://www.rtems.com/
- FreeRTOS http://www.freertos.org/
RTEMS in particular is much closer in functionality to VxWorks so it is likely porting to it would not be a huge job. It is well supported, extremely stable and free from GLP licensing issues.Eh. Practically any Linux distro could do what this person is asking for without blinking at this point, assuming the CPU is fast enough to keep up. Video isn't really a hard-real-time environment. Where the embedded vendors shine is in supporting custom hardware, which I assume this company is using. That doesn't sound like it's up Ubuntu's alley. Mobile and embedded are not the same thing, though they do overlap.
My advice: talk to several vendors, tell them what you're trying to do, and let them give you and your management a presentation about what they can offer. While my stock (not yet public) would love it if you pick MontaVista (and I can honestly say that IMHO, they do excellent work, BTW), what's most important is that you pick a company that you feel comfortable working with, and if that's the MV folks, great, but if it's somebody else, that's okay, too. I suspect that they'll tell you much the same thing.
Tell 'em David sent ya.
Check out my sci-fi/humor trilogy at PatriotsBooks.
TiVo distributes Linux every time they sell a device, and they distribute source code. The TiVo hardware has some kind of device that checks for the original unmodified TiVo software, so that their Linux device cannot accept user-made changes. This does not violate GPL v2.
I just spent last semester dealing with openembedded and a pxa270 based dev board. The documentation is not the greatest, but once you have everything figured out and working, OE's power and flexibility really shine through.
Legally obligatory sig : My opinions are my own... etc etc