Embedded Linux Device DriverLaajuus (5 ECTS)
Course unit code: TI00AA64
General information
- Credits
- 5 ECTS
Objective
The student understands the embedded Linux system and how to configure, compile and install a Linux kernel from sources.
The student understands how to design and implement different devices to a UNIX system.
Content
Recapitulation of kernel mechanisms.
General function of the device driver: Types of device drivers, physical I/O, major and minor numbers. Loadable versus static drivers.
Device driver types: Character drivers, block drivers and network drivers.
General mechanisms: Sleep and wakeup (wait queues). Buffer allocation. Timer handling. Interrupt handling.
Configuration and initialization: Error logging, debugging, the /proc and /dev filesystems.
Character drivers: Data transport between user mode and kernel mode, error codes, the ioctl interface.
Block drivers: Buffer management, mount and unmount, request queues and the request-routine, interrupt and start routines.
Network drivers: Packet management, socket handling.
-----
This is a hands-on course in operating system internals. Students configure, compile, and install a Linux kernel from sources; do the same for a kernel module; navigate and read the Linux kernel sources; design and implement a kernel module of your own; modify, or design and implement from scratch, a device driver; measure the performance of what you have modified or implemented
Qualifications
The student must be fluent in C programming. Furthermore, a general understanding of Linux system programming is preferred.
Assessment criteria, satisfactory (1)
The student is able to create and implement Linux-based device drivers.