| Linux Kernel & Device Driver Programming ↑ |
| Summer 2010 |
The course calendar summarizes the important dates for the term, including assignment due dates. It starts out as a plan, and is updated to fit reality during the term.
The reading topics for class meetings and reading assignments shown below are a compromise between the desire to cover all the topics in the text and need to get started on the main project within three weeks. To do the project one needs at least a little bit from several chapters scattered througout the book, but one does not need to understand every detail. The book tries to cover all kinds of devices and the entire device driver programming interface, but we will just be using a subset of that. On the other hand, it is easier to read the book in order, without skipping. Added to this dilemma, we have other material, not in the book, that we need to read, including the following:
These needed to be interleaved with the textbook readings, but do not appear explicitly in the calendar, except in the last few weeks.
The intent of the reading assignment schedule is to read (rush) through the entire book quickly enough that we have the knowledge we need to tackle a serious project not later than the end of the third week. There will be unannounced short quizzes, usually 15 minutes long, from time to time to spot-check that we are keeping up with the readings. As the term progresses, when it appears the assignments were getting difficult enough to take time away from reading, and we need extra time time to discuss the specifics of the assignments, we will back off on the pace of the readings and in-class coverage of the textbook topics, and use the class time to walk through some full Linux device drivers, while the students work on their own projects.
| Date | Topics | Web Notes |
Read in Book | Comments |
|---|---|---|---|---|
| Week 1 | ||||
| Mon 10 May | Introduction and Overview |
Syllabus; Survey; Overview; Introduction to Device Drivers; Asst 1 explained |
LDD3 1, 2, 6; WLDD 1, 2, 3 | |
| Tue 11 May | Compiling kernel and modules Building and Running Modules Do in-class demonstration, then move to LOV 016 lab |
Asst 1 | LDD3 2; WLDD 5 |
|
| Wed 12 May | Building & Running Kernel Modules | Modules | LDD3 3, 9; WLDD 3, 9 |
|
| Thu 13 May | Character Drivers | Char Drivers | LDD3 4; WLDD 4 |
Asst 1 due Baker at FCCNS meeting |
| Fri 14 May | Debugging Techniques Introduction to Lab Assignment #2 |
Debugging Asst 2 explained |
LDD3 10, 14; WLDD 10 |
Baker at FCCNS meeting |
| Week 2 | ||||
| Mon 17 May | Concurrency & Race Conditions | Concurrency | LDD3 12; WLDD 12 |
|
| Tue 18 May | Advanced Character Device Operations | Char Ops | LDD3 13, 19; | Asst 1 demos |
| Wed 19 May | Time, Delays, & Deferred Work | Time | LDD3 11, 20; WLDD 11, 19 |
Asst 1 demos |
| Thu 20 May | Allocating Memory Introduction to Lab Assignment #3 |
Memory | LDD3 17; WLDD 17 |
Asst 2 due |
| Fri 21 May | Communicating with Hardware | Hardware Asst 3 explained |
LDD3 21; WLDD 21. 22, 23 |
Preliminary project proposals due |
| Week 3 | ||||
| Mon 24 May | Interrupt Handling | Interrupts | LDD3 8, 20; WLDD 8 |
Asst 2 demos |
| Tue 25 May | Introduction to Video Drivers, discussion of team projects | Project | LDD3 11 | Asst 2 demos |
| Wed 26 May | PCI Drivers | LDD3 12 Notes | LDD3 12 | |
| Thu 27 May | Memory Mapping and DMA | LDD3 15 Notes | LDD3 15 | Asst 3 due |
| Fri 28 May | Discussion of Projects ide-floppy Driver, if time |
Final project proposals due | ||
| Week 4 | ||||
| Mon 31 May | Memorial Day observed | no class | ||
| Tue 01 Jun | I2C bus & how to use it to initialize the frame grabber | HRT Notes | ||
| Wed 02 Jun | Video for Linux API | HRT Notes | ||
| Thu 03 Jun | Network Drivers | LDD3 17 Notes | Refs | |
| Fri 04 Jun | Network Drivers | LDD3 17 Notes | Refs | Team progress reports |
| Week 5 | ||||
| Mon 07 Jun | yLinux Device Model | LDD3 14 Notes | LDD3 14 | |
| Tue 08 Jun | Linux Device Model | Linux locking and other patterns, Linux spinlocks | LDD3 14 | |
| Wed 09 Jun | Linux Kernel Data Types | LDD3 11 Notes | LDD3 11 | |
| Thu 10 Jun | USB Drivers - introduction | Baker USB (LDD3 13) Notes | LDD3 13 | |
| Fri 11 Jun | Team reports | Team progress reports | ||
| Week 6 | ||||
| Mon 14 Jun | USB Drivers - continued | Wang USB (LDD3 13) Notes | LDD3 13 | Baker at Ada Europe meeting |
| Tue 15 Jun | Block Device Drivers | Block Devices | LDD3 16 | Baker at Ada Europe meeting |
| Wed 16 Jun | Multiple Device Driver | Notes for MD | Baker at Ada Europe meeting | |
| Thu 17 Jun | Project final reports & demonstrations | Refs | Baker at Ada Europe meeting | |
| Fri 18 Jun | Project final reports & demonstrations | Refs | Project Due Baker at Ada Europe meeting |
|
| Final Grades Due | ||||
| Tue 10 Aug | Grades due at Registrar | 4:00 PM | ||
See Notes and Assignment pages for links to class notes and assignment descriptions.
| T. P. Baker ($Id$) |