Why am I even bothering with embedded Linux? I’ve got plenty of work and challenges working with bare silicon that I don’t really need the headaches of learning something this complex.
Then again, learning new stuff is fun! And who can pass up playing with hardware costing less than $50 that fits into a mints tin and is more powerful than many of the desktops I’ve used. And, hopefully, there will be a customer who wants features in an embedded system that can only be provided by an operating system.
The sections below describe my exploration into Embedded Linux (elinux) and collect what I have learned. This has remained a cursory exploration only, because I quickly discovered several things:
- Real-world elinux projects are accomplished with teams, usually a hardware team and a software team.
- Raspberry Pi, Beaglebones, and other such flora and fauna are learning systems. You should not use them to develop a product.
- A single smart person may be able to develop and maintain a real-world elinux application on some well-established hardware as a full-time job only. This isn’t an Arduino!
- Every elinux system has all the baggage of a full-fledged operating system. You can’t know everything about it.
Naturally, these are just my opinions.
Bearing these discoveries in mind, along with the many technical challenges I encountered during the few weeks I set aside for this exploration, I have carefully packed up my books, web printouts, and boards and put them on the shelf. I’m sure they’ll come in handy sometime, as so many other things I’ve shelved in the past, I’m just not sure when.
I’ve been reading about Raspberries, Beagles, and other embedded Linux boards for a while. The BeagleBone Black (BBB) is particularly intriguing because it has literally everything – networking, USB, video, RAM, Flash for file systems, and more, running at 1 GHZ. Remember when we thought an 8MHz PC was fast? So, I thought I’d dive in. I got a couple of BBB boards and accessories and started playing.
Once you hook up a display, keyboard, mouse and Internet, the BBB runs like any other Linux computer. Just as-is, out of the box, it’s pretty impressive. It makes a great terminal for browser-based application. But, I didn’t need another general-purpose computer. I wanted to build an industrial controller with touch screen and lots of I/O.
This is where I discovered that newest is not necessarily best. This was clearly a case of hardware performance outstripping the software. I starting to learn about bootloaders, kernels, file systems and cross-compiling in trying to make this board dance. And I started looking into how I would make it do all the things I already do with my bare silicon embedded systems, like talking to servos, SPI devices, web pages and so on. I started looking at books, web sites, whatever I could find to learn more about embedded Linux in general.
There are lots of websites. There is a bewildering array of elinux hardware and software providers – some private and some public domain. Most of them assume a level of expertise I have not reached yet. I did find a few books that started at the beginning and finally settled on Doug Abbott’s Linux for Embedded and Real-Time Applications, primarilly because it was the most current. This book actually walks you through everything you need to do to work with an embedded Linux device. The hardware Doug Abbott uses is called the Mini2440. This board has been around for several years and I can find dozens of YouTube video tutorials, forums and personal webpages showing how to work with the board.
I set aside my BeagleBone Black boards and bought the Mini2440 board and companion Embedded Linux Learning Kit (ELLK), which is also written by Doug Abbott. The book, and ELLK, take you step by step through the basics of embedded Linux with some real hardware. And it all works, which is very satisfying when you’re learning something new. If you are serious about embedded Linux and feel lost, get the book and a Mini2440 board and start at page one. Once you’ve gone cover-to-cover you’ll have an appreciation for what it takes to to put an elinux system together. Then you can start thinking about making changes and/or working with a different board.
Mini2440 Vendors and Official Sources
- FriendlyARM – Chinese manufacturer
- FriendlyARM Forum
- FriendlyARM Downloads – this FTP site has the most current files. The logonid and password came with your board.
- Industrial ARMWorks – US distributor for FriendlyARM
- Hiteg – another vendor for the Mini2440
- Intellimetrix – Doug Abbott’s web site
Other Mini2440 Web Sites
Embedded Linux Web Sites
- elinux.org – lots of good information, not well organized.