An Introduction to Embedded Linux Development, Part 1
Over the last decade, a sea change has occurred in the world of embedded systems, driven by the appearance of sophisticated new products such as PDAs and cell phones and by the continual increase in the amount of resources that can be packed into a small form factor. The traditional small, narrowly focused embedded systems retain their significant presence, but these newer arrivals can capitalize on embedding a full-featured operating system. The operating system provides a wide selection of capabilities from which to choose. For example, wireless Internet connectivity and a GUI already are built in. Only a few years ago, embedded operating systems typically were found only at the high end of the embedded system spectrum.
Linux, available for many architectures, is an obvious candidate for an embedded system, and it already is being used widely in this area. Its open nature makes it particularly attractive to developers. Development tool suites have begun to appear in response to the perceived need, although one can work without such luxury and employ less integrated tools already available in Linux. New embedded systems companies using Linux have opened for business, and various older embedded systems companies have added Linux to their product line.
Assuming the technology sector of the economy continues to recover, many opportunities for software engineers and programmers should develop in this general area of embedded systems. Many of these potential developers have worked with desktop systems, however, but not with embedded systems. How high is the barrier to making the switch? It used to be that each embedded system developer needed to be somewhat of a hardware guru. However, with a resident operating system, an embedded system project can get by with perhaps one hardware guy and then add application developers as needed. In that scenario, the hardware knowledge is not a barrier, because the hardware guy becomes a shared resource--and others pick up whatever superficial hardware knowledge is efficient for their tasks. In short, in-depth hardware expertise is not a barrier. However, some familiarity with the development environment is necessary. The intent of this article series is to provide enough of the basics to get a reader started.
If we're going to learn about an embedded Linux development environment, it's best to do so as a hands-on process. A careful reading of these articles without the hands-on component still has some value, though. The typical reader probably has a Linux box to use as a development work station but does not have an embedded target. Let's discuss options for incorporating a target.
Option 1: Stay within the environment of your Linux box and choose a target such as a floppy disk, a CD-ROM, a USB pen drive or something similar. This option offers some prototypical features of what we would like to learn, but it is only a small start.
Option 2: Choose a PDA known to have the capability to support Linux. The Sharp Zaurus SL-5500 comes to mind. It comes with Linux installed, has an active developer community and offers a rather full set of features. Because it is not the most recent Zaurus to hit the market, it can be found at significantly discounted prices. This target is much more prototypical than those suggested in Option 1. However, it still falls short of what we ultimately want. In particular, if we choose this option, we won't have the opportunity to learn much about the bootloader, an important topic.
Option 3: Find a relatively affordable single-board computer (SBC) known to support Linux. This gives us a truly typical target. If we're lucky, we'll find a vendor willing to work with us. It should be noted that I have worked with embedded systems but am not a hardware guru. I might need some input from such a person as this article series evolves.
We are going to go with Option 3. The two other options also offer significant value, however. In fact, the author has a beta version of a course that explores these two options, currently located here. Material based on this series of articles eventually will be added to that on-line course.
I gave a presentation on the beta version of the aforementioned course at the Real World Linux Conference 2004 in Toronto. There, I met Iain Galloway from Engineering Technologies Canada Ltd.. Our discussions led me to choose an SBC from that company to meet Option 3, above. I chose the LBOX with uClinux, which features a Motorola Coldfire MCF5272 processor, Flash memory, a serial port, a fiber port, up to three 10/100 Ethernet ports and more. It's ready to go without first needing to build it into something else. That is, you can power it up with any supply in the 5-12 volt range. The LBOX also has a full expansion port, allowing easy experimentation.
It should be noted that I have no financial connection to Engineering Technologies Canada. The LBOX simply looked like it was a suitable product for which I could receive appropriate help for any glitches encountered along the way. Further, Engineering Technologies Canada is willing to work with students at my institution. In particular, the company is willing to donate some new add-on hardware in exchange for open-source code that would enhance its value--a good deal for both parties.
Part 2 of this series will describe the complete hardware setup comprising our development environment with LBOX as the target and then show how to bring it to life.
Dr. Richard Sevenich is a Professor of Computer Science at Eastern Washington University in Cheney, Washington. There, he teaches courses in operating systems, compiler design and assembly language. He has given presentations at LinuxWorld Expo, O'Reilly's Open Source Conference and RealWorld Linux. Additionally, he gives occasional training courses in Linux device drivers and embedded Linux development.
Realizing the promise of Apache® Hadoop® requires the effective deployment of compute, memory, storage and networking to achieve optimal results. With its flexibility and multitude of options, it is easy to over or under provision the server infrastructure, resulting in poor performance and high TCO. Join us for an in depth, technical discussion with industry experts from leading Hadoop and server companies who will provide insights into the key considerations for designing and deploying an optimal Hadoop cluster.
Sponsored by AMD
If you already use virtualized infrastructure, you are well on your way to leveraging the power of the cloud. Virtualization offers the promise of limitless resources, but how do you manage that scalability when your DevOps team doesn’t scale? In today’s hypercompetitive markets, fast results can make a difference between leading the pack vs. obsolescence. Organizations need more benefits from cloud computing than just raw resources. They need agility, flexibility, convenience, ROI, and control.
Stackato private Platform-as-a-Service technology from ActiveState extends your private cloud infrastructure by creating a private PaaS to provide on-demand availability, flexibility, control, and ultimately, faster time-to-market for your enterprise.
Sponsored by ActiveState
| Speed Up Your Web Site with Varnish | Jun 19, 2013 |
| Non-Linux FOSS: libnotify, OS X Style | Jun 18, 2013 |
| Containers—Not Virtual Machines—Are the Future Cloud | Jun 17, 2013 |
| Lock-Free Multi-Producer Multi-Consumer Queue on Ring Buffer | Jun 12, 2013 |
| Weechat, Irssi's Little Brother | Jun 11, 2013 |
| One Tail Just Isn't Enough | Jun 07, 2013 |
- Speed Up Your Web Site with Varnish
- Containers—Not Virtual Machines—Are the Future Cloud
- Linux Systems Administrator
- Lock-Free Multi-Producer Multi-Consumer Queue on Ring Buffer
- Senior Perl Developer
- Technical Support Rep
- Non-Linux FOSS: libnotify, OS X Style
- UX Designer
- Web & UI Developer (JavaScript & j Query)
- RSS Feeds
- Reply to comment | Linux Journal
4 min 15 sec ago - Reply to comment | Linux Journal
2 hours 30 min ago - Reply to comment | Linux Journal
6 hours 29 min ago - Yeah, user namespaces are
7 hours 46 min ago - Cari Uang
11 hours 17 min ago - user namespaces
14 hours 11 min ago - yea
14 hours 36 min ago - One advantage with VMs
17 hours 5 min ago - about info
17 hours 38 min ago - info
17 hours 39 min ago



Comments
embedded linux
could you please explain what is embedded linux development environment(open embedded)
Re: An Introduction to Embedded Linux Development, Part 1
The more articles on embedded linux, the better. I often have difficulty with some of the books on this topic, as I'm not a computer engineer, but a programmer. I've always wanted to dabble in embedded systems but find it difficult to know where to begin (I know there is linuxdevices.com, but their into-guide to embedded systems is a bit outdated, no?).
Looking forward to the next part.
p.s. Has anyone tried using Emac, Inc. Embedded Linux Starter Kit? http://www.emacinc.com/trainers/linux_starter_kit.htm
Error in URL that u provided
Hi
http://www.emacinc.com/trainers/linux_starter_kit.htm
.....says not found
can u check once again...
anything else u can suggest to me as I have started Embedded programming from scratch !!! plz
thanks
Naresh.nbhalala@hotmail.com
Error in URL that u provided
Hi
http://www.emacinc.com/trainers/linux_starter_kit.htm
.....says not found
can u check once again...
anything else u can suggest to me as I have started Embedded programming from scratch !!! plz
thanks
Naresh.nbhalala@hotmail.com
embedded linux
Take a look at
www.sveasoft.com
---> take hardware readily available for 50-60 $ (the linksys wrt54g or the linksys wrt54gs wireless router), load the firmware
from the guys at sveasoft, and you have a real linux router with kernel 2.4, iptables, ebtables and lots of wireless commands.
The absolutely cheapest solution in my opinion.
Re: An Introduction to Embedded Linux Development, Part 1
This is intresting to learn embedded linux with target board .I am
waiting for next part . plz mention sources for embedded linux
kernel and hardware ....
Regards
Naveen
busybox
is nice to finally see an article (series) on embedded systems.
My first attempt at building an embedded sys was early in 1999
although im not an expert , i was able to build some nice systems
routers, video boxes, etc , out of ordinary computer hardware.
i think it would be appropiate here to mention that i couldn't have done many of this projects without the help of busybox.