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.

in Book
Week 1
Mon 10 May Introduction and Overview Syllabus;
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;
Wed 12 May Building & Running Kernel Modules Modules LDD3 3, 9;
WLDD 3, 9
Thu 13 May Character Drivers Char Drivers LDD3 4;
Asst 1 due
Baker at FCCNS meeting
Fri 14 May Debugging Techniques
Introduction to Lab Assignment #2
Asst 2 explained
LDD3 10, 14;
Baker at FCCNS meeting
Week 2
Mon 17 May Concurrency & Race Conditions Concurrency LDD3 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;
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;
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 JunLinux 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$)