Difference between revisions of "Embedded Linux, Rose-Hulman"

From eLinux.org
Jump to: navigation, search
m (Grades)
m (Fixed Calendar link)
(88 intermediate revisions by 6 users not shown)
Line 1: Line 1:
== Introduction ==
+
[[Category:ECE497 | 32-bit]]
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[[http://ece-1.rose-hulman.edu/ecemm/]] at Rose-Hulman Institute of Technology[[http://www.rose-hulman.edu]].  Rose is a small, private, undergraduate engineering school that focuses on undergraduate education.
+
[[Category: BeagleBoard]]
 +
[[Category: Education]]
 +
{{YoderHead}}
  
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. Here's the official description of the course.
+
[http://www.crashcourse.ca/wiki/index.php/ECE497_for_the_BBB Overview]
  
== Course Description ==
+
=== Introduction ===
  
'''ECE 597/CSSE XXX 32-bit Embedded Linux 4R-0L-4C S Pre: Consent of instructor'''
+
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 [http://www.rose-hulman.edu/academics/academic-departments/electrical-computer-engineering.aspx Electrical and Computer Engineering Department] at [http://www.rose-hulman.edu Rose-Hulman Institute of Technology].  Rose is a small, private, undergraduate engineering school that focuses on undergraduate education.
  
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.
+
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 to an existing open source project, or launch a new one.  
  
=== Text ===
+
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.
We'll be using the text '''Embedded Linux Primer'''[[http://books.google.com/books?id=x5UNQwAACAAJ]], by ''Christopher Hallina''n, published by Pearson Prentice Hall.  The link is for the 1<sup>st</sup> edition; however we are using a prepublication version of the 2<sup>nd</sup> edition[[http://books.google.com/books?id=1U5yQAAACAAJ&source=gbs_book_other_versions_r&cad=2]]It will be available in the bookstore around the first day of class.
+
 
 +
Here ([[:Category:ECE497]]) is a list of all the pages I've posted on eLinux for this class.  Take a look at it.
 +
 
 +
Here's the official description of the course.
 +
 
 +
=== Course Description ===
 +
 
 +
'''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 to 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.
 +
 
 +
=== Calendar and Exercises ===
 +
This is a 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: [https://docs.google.com/document/d/1SJL2_0Fc8yXHZZ3AVWREOHfK7jfidzBHG-lVuYfif9k/edit#heading=h.mud7eogux2sr ECE497 Calendar and Exercises]
 +
 
 +
=== Textbook ===
 +
We'll be using the text [http://www.amazon.com/Embedded-Linux-Primer-Practical-Real-World/dp/0137017839 Embedded Linux Primer], by ''Christopher Hallinan'', 2<sup>nd</sup> 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 processorsOne of your tasks will be to reproduce the listing for the BeagleBoard.
  
 
=== Grades ===
 
=== Grades ===
Grades in the class aren't based on the traditional homework and exams, rather, they are based on a major Beagle-based project and your portfolio. The project will be done with teams of about 3 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.
+
Grades in the class aren't based on the traditional homework and exams; rather, they are based on some weekly memos reporting the daily exercises [https://docs.google.com/document/d/1SJL2_0Fc8yXHZZ3AVWREOHfK7jfidzBHG-lVuYfif9k/edit ECE497 Calendar and Exercises], weekly homework and a major Beagle-based project. The projects will be done with teams of 2 or 3 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.
 
  
== Links ==
+
{| style="color:green; background-color:#ffffcc;" cellpadding="10" cellspacing="0" border="1"
 +
| Status Reports
 +
| 10%
 +
|-
 +
| Homework
 +
| 40%
 +
|-
 +
| Project
 +
| 40%
 +
|-
 +
| Giving to Community
 +
| 10 %
 +
|}
  
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.
+
The Calendar gives the due dates.  I'll give a reward to being early and 10% per day penalty for being late. You must complete all the exercises to pass the course.
  
* '''BeagleBoard.org'''[[http://BeagleBoard.org]], the starting point for all thing Beagle.
+
=== Weekly Status Memos ===
* '''Beagle Discussion Grou'''p[[http://groups.google.com/group/beagleboard]], lot's of good information here, but you'll have to dig a bit.  Subscribe and follow the discussion.
 
* '''eLinux'''[[http://elinux.org/BeagleBoard]], this is where this page is being hosted.  It's about embedded Linux in general, not just the BeagleBoard.
 
* '''Free Electrons Beagle Board Training'''[[http://free-electrons.com/blog/beagle-labs/]], some good labs about what makes embedded Linux run.
 
  
===Project Ideas===
+
A Weekly Status Memo is due on Monday of each week. See [[ECE497_Weekly_Status_Memos]] for details.
  
Here are some links where you'll find ideas for your project.
+
=== D114 Lab ===
* '''ETechDays Community Lightning Talks'''[[http://wiki.omap.com/index.php/ETechDays_Community_Lightning_Talks]], this is a one-day web-based conference where many project ideas are presented.  One of our 2009-2010 senior design projects was found here.
+
Solid sole footwear must be worn at all times while in the lab for any reasonGlove or finger footwear is not considered as closed toe or solid sole and thus is not permitted at anytime within the lab.
* '''Official list of Beagle Projects'''[[http://beagleboard.org/project]], there are many Beagle specific projects listed here.  Many are inactive.  ''List your project here one it running.''
 
* Augmented Reality Project[[http://www.youtube.com/watch?v=Mk1xjbA-ISE]], here's an idea that I think we can do on the Beagle.  Rather than using augmented reality glasses, I'd suggest we use a TI DLP pico projector[[http://focus.ti.com/dlpdmd/docs/dlpdiscovery.tsp?sectionId=60&tabId=2235]].   
 
* '''Android'''[[http://code.google.com/p/0xdroid/]], this is one of a couple of efforts to port Google's Android OS[[http://source.android.com/]] to the Beagle.
 
  
=== Getting Started Hint s===
+
Additionally, closed toe, solid sole footwear must be worn within 4 ft. of the lab benches.  No loose fitting clothing (e.g. ties, scarfs, long necklaces) are allowed within 4 ft. of the lab benches.  Long hair must be tied such that it is not loose or hanging in such a way that it could potentially get caught in the moving equipment when within 4 ft. of the lab benches.
Here are some useful links of getting things going.
+
No food or drinks are permitted within 4 feet of any lab bench. Food and drinks are allowed to be placed on the front table and tables in center of room. Anyone with drinks and/or food stuffs must remove or dispose of the material at the conclusion of their lab period(s).  Food and/or drinks contained in backpacks and/or closed or sealed containers/packages may be kept on the floor during the lecture/lab period but MAY NOT be opened or consumed within 4 ft. of lab benches, food and drinks allowed on front table and tables in center of room.
* '''Linux Hints for Beagle'''[[http://code.google.com/p/beagleboard/wiki/LinuxHints]], hints on handling video and USB devices.
 
* '''Precompiled Angstrom Distribution'''[[http://www.angstrom-distribution.org/demo/beagleboard/]], this is a good starting place to get Linux running on your Beagle.  It's all pre-compiled and ready to run.  The instructions below will point you to here.
 
  
== Setting up your hardware and software ==
+
No soldering, drilling, sawing, and/or non-circuit fabrication allowedElectrical and wiring connections of components using “breadboards”, wire wrap, and/or chip sockets are permitted.
=== The Hardware===
 
You need to need to come by my office to pick up a BeagleBoardI have on Beagle per team, plus a couple of extras.  If you got a rec C3 board earlier you need to come swap it for a rev C4.  You also need to buy the Beagle Kit from Mark Crosby in room XXX.  It's $40.  You'll also need a USB mouse, keyboard and powered hub, plus an SD card and reader.  2G should be big enough.  I suggest at least one card per person (not team).  This will let you try new things without deleting the old.
 
  
=== The Software ===
+
Lab usage permitted testing available between 8:00 AM and 5:10 PM Monday through FridayLab usage at other times must be approved in writing by the ECE department chair or ECE department faculty member.
We're using mostly open source softwareGo to here[[ece597 Software Setup]] to see see how to get everything installed.
 
  
== Setting up Linux on your host computer ==
+
At least two students must be present within the lab at anytime lab equipment is being used or testing is being conducted.  Devices, circuits, systems under test may NOT be left unattended unless all test equipment has been turned off.  Any material left unattended in the lab is done so at the individuals own risk.  The ECE department is not responsible for material left unattended in the lab.
[[Beagle: Installing Ubuntu in VMware Player]]
 
  
== Setting up your BeagleBoard ==
+
Taken from \\rose-hulman.edu\dfs\AcademicAffairs\ECE\lab-safety
[[Getting your Beagle running]]
 
  
==Things I'm working on==
+
{{YoderFoot}}
[[Links I'm working on]]
 

Revision as of 06:22, 6 January 2014

thumb‎ Embedded Linux Class by Mark A. Yoder


Overview

Introduction

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 to 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 (Category:ECE497) is a list of all the pages I've posted on eLinux for this class. Take a look at it.

Here's the official description of the course.

Course Description

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 to 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.

Calendar and Exercises

This is a 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 and Exercises

Textbook

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

Grades in the class aren't based on the traditional homework and exams; rather, they are based on some weekly memos reporting the daily exercises ECE497 Calendar and Exercises, weekly homework and a major Beagle-based project. The projects will be done with teams of 2 or 3 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.

Status Reports 10%
Homework 40%
Project 40%
Giving to Community 10 %

The Calendar gives the due dates. I'll give a reward to being early and 10% per day penalty for being late. You must complete all the exercises to pass the course.

Weekly Status Memos

A Weekly Status Memo is due on Monday of each week. See ECE497_Weekly_Status_Memos for details.

D114 Lab

Solid sole footwear must be worn at all times while in the lab for any reason. Glove or finger footwear is not considered as closed toe or solid sole and thus is not permitted at anytime within the lab.

Additionally, closed toe, solid sole footwear must be worn within 4 ft. of the lab benches. No loose fitting clothing (e.g. ties, scarfs, long necklaces) are allowed within 4 ft. of the lab benches. Long hair must be tied such that it is not loose or hanging in such a way that it could potentially get caught in the moving equipment when within 4 ft. of the lab benches. No food or drinks are permitted within 4 feet of any lab bench. Food and drinks are allowed to be placed on the front table and tables in center of room. Anyone with drinks and/or food stuffs must remove or dispose of the material at the conclusion of their lab period(s). Food and/or drinks contained in backpacks and/or closed or sealed containers/packages may be kept on the floor during the lecture/lab period but MAY NOT be opened or consumed within 4 ft. of lab benches, food and drinks allowed on front table and tables in center of room.

No soldering, drilling, sawing, and/or non-circuit fabrication allowed. Electrical and wiring connections of components using “breadboards”, wire wrap, and/or chip sockets are permitted.

Lab usage permitted testing available between 8:00 AM and 5:10 PM Monday through Friday. Lab usage at other times must be approved in writing by the ECE department chair or ECE department faculty member.

At least two students must be present within the lab at anytime lab equipment is being used or testing is being conducted. Devices, circuits, systems under test may NOT be left unattended unless all test equipment has been turned off. Any material left unattended in the lab is done so at the individuals own risk. The ECE department is not responsible for material left unattended in the lab.

Taken from \\rose-hulman.edu\dfs\AcademicAffairs\ECE\lab-safety




thumb‎ Embedded Linux Class by Mark A. Yoder