Embedded Linux, Rose-Hulman
This Wiki is about a college-level embedded processor class being taught using the BeagleBoard. It's being taught by Professor Mark A. Yoder in the Electrical and Computer Engineering Department at Rose-Hulman Institute of Technology. Rose is a small, private, undergraduate engineering school that focuses on undergraduate education.
A major part of the class is learning how to work with and leverage off of the open source community. The course requires a major project which will either significantly contribute and an existing open source project, or launch a new one.
If you teach a similar course, I'd like to hear from you. ECE497 Instructor Guide explains the various choices I made in what to cover in the course, which distribution to use, etc.
Here's the official description of the course.
ECE 497 32-bit Embedded Linux 4R-0L-4C S Pre: Consent of instructor
Brief introduction to Linux on a 32-bit embedded processor. Detailed study of what happens from power up the fully running X-Windows. Adapting Linux to a given application including: boot time reduction, power management and root filesystem support. Streaming media on an embedded processor. Using a DSP co-processor to improve performance. Design project. Previous Linux experience not required, but helpful. C programming, operating system and hardware experience required.
This is dynamic course, so the calendar may change as we discover interesting new things. It will be updated as we go. You can see it here: ECE497 Calendar
We'll be using the text Embedded Linux Primer, by Christopher Hallinan, 2nd edition, published by Pearson Prentice Hall.
The text is not Beagle specific, rather it pulls examples from many embedded processors. It has many listings which detail the outputs from various processors. One of your tasks will be to reproduce the listing for the BeagleBoard.
Grades in the class aren't based on the traditional homework and exams, rather, they are based some daily exercises ECE497 Exercises, a couple of minor projects and a major Beagle-based project and your portfolio. The projecst will be done with teams of 3 or 4 people. We have people in the class with strong embedded backgrounds and others with strong Linux background. The goal is to have teams include complementary skills.
Your portfolio is a collection of what you, as an individual, have contributed to the community and the team.
There are many things you will have to do to get your computer set up, etc. ECE497 Exercises gives the step-by-step details along with due dates.
Since we are working with the open source community, you need to know where the action is. Here are some useful links to what's happening in the Beagle community.
- State of the Beagle 2011, learn about the Beagle's past, present and future.
- BeagleBoard.org, the starting point for all thing Beagle.
- Beagle Discussion Group, lot's of good information here, but you'll have to dig a bit. Subscribe and follow the discussion.
- blogspot, see what is being said about the Beagle.
- eLinux, this is where this page is being hosted. It's about embedded Linux in general, not just the BeagleBoard.
- Free Electrons Beagle Board Training, some good labs about what makes embedded Linux run.
- TI Embedded Speech Recognizer (TIesr) is a fixed-point recognizer written in C++ and C.
- Google Summer of Code. BeagleBoard is an accepted organization.
- Linux Kernel Map
- Texas Instruments Embedded Processors Wiki
Here are some links where you'll find ideas for your project. ECE497 Project Ideas
Setting up your hardware and software
I have a Beagle Board xM for everyone to use for the quarter. I'm assuming you have some hardware already. Here's the hardware you will need and where you get it.
From the Instrument Room
- BeagleBoard xM
- 5V power supply
- HDMI to DVI cable
- serial to USB cable
From your own resources
- USB keyboard and mouse
- DVI-D display
- micro SD card. 2G should be enough
We're using mostly open source software. Go to here ECE497 Software Setup to see see how to get everything installed.