0% found this document useful (0 votes)
127 views

El 504

This document provides an overview of the EL-504 course "Developing Linux Device Drivers". The course aims to teach engineers how to develop Linux device drivers for character, block and network devices. It covers the kernel module development cycle, writing and testing drivers, building kernels with new drivers, and key kernel mechanisms like interrupts, memory management and I/O ports that device drivers use. Exercises are done on desktop and embedded Linux systems to develop and test custom drivers. The course materials include presentations, exercises and Linux kernels to develop skills in writing Linux drivers.

Uploaded by

api-3860349
Copyright
© Attribution Non-Commercial (BY-NC)
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
127 views

El 504

This document provides an overview of the EL-504 course "Developing Linux Device Drivers". The course aims to teach engineers how to develop Linux device drivers for character, block and network devices. It covers the kernel module development cycle, writing and testing drivers, building kernels with new drivers, and key kernel mechanisms like interrupts, memory management and I/O ports that device drivers use. Exercises are done on desktop and embedded Linux systems to develop and test custom drivers. The course materials include presentations, exercises and Linux kernels to develop skills in writing Linux drivers.

Uploaded by

api-3860349
Copyright
© Attribution Non-Commercial (BY-NC)
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 1

EL-504: Developing Linux Device Drivers

Course Description: Course Outline:


Linux is now being designed into everything from super The GNU/Linux kernel
computers down to mobile phones. Fortunately, to deploy − Introduction to the Linux community
Linux in your design very few applications require the − A high level overview of the kernel and
knowledge to re-program the actual Linux kernel. terminology including: virtual memory;
However, most applications do require some user/kernel space; processes; threads;
customisation for the specific hardware devices in their tasklets
design. This course caters for the many engineers − How to download, patch and build the
needing only the skills to design and test a Linux device kernel
driver. − How to set up a cross-development
Course Objectives: environment
• To provide an overview of the Linux kernel internal The kernel programming environment
mechanisms available to a driver developer − Firstly the kernel and process
• To become a proficient Linux driver developer for debugging tools including: gdb, strace,
character, block and network devices printk, ksyms, Ismod and logging
• To recognise resource eating inefficient drivers, and daemons
tailor to minimise RT latency. − Insmod: Adding driver modules to the
kernel, Loadable modules: utilities,
Delegates will learn: symbols, parameters, revisions and
• The kernel module development cycle: edit, compile, compatibility
load, test and unload kernel module drivers − /proc: Talking directly to the kernel
• To write, compile and link simple application
programs to test drivers Driving the Kernel through /dev
• To build a kernel with a new built-in driver − /dev/File: Device Driver Interface:
special files, driver types: character
• To obtain a high-level appreciation of the relationship
and block, major-minor numbers
between GNU, Open Source, GPL, and LGPL.
− /dev: Registering: device <-> files
Pre-requisites: interface operations (read, write, ioctl,
• Good C poll…)
• Knowledge of embedded micros, interrupts etc. Kernel Mechanisms for the Driver
• Some Linux or any form of Unix familiarity would be − User <-> Kernel memory allocation,
helpful virtual-physical, paging, mapping, I/O
• This course would be an excellent compliment to the Ports
Feabhas EL-503: Developing for Embedded Linux. − Interrupts: Registering and Handling,
This is not mandatory though. Sharing, Disabling, SMP, Fast and
Who Should Attend: slow handlers; Bottom half and tasklets
Engineers interested in interfacing to custom hardware on − Task Queues, Scheduling and Linked
a Linux platform. Linux application programmers lists
interested in accessing Linux at a lower level. − Timing: sources of time, short/long
Communications engineers interested in the Linux TCP/IP delays, current time, jiffies, kernel
protocol stack. timers
− Blocking, Waiting and Sleeping:
Duration: queues, interrupting and waking up
Five days. − Polling and select application
Course Materials: interfaces
• A delegate handbook containing all the theory Advanced Kernel Issues
presentation slides and laboratory exercises − Network drivers
• CD containing all kernels and utilities for the − Race conditions, semaphores and
laboratory exercises. spin-locks
Related Courses: − Benchmarking; real time behaviour
EL-503 Developing for Embedded Linux. − Peripheral Buses: PCI and USB
− Adding a driver to the kernel boot
Course Workshop: image; creating your own Board
Drivers are written or customized to explore all theoretical Support Package (BSP)
material. The early sessions make use of a desktop PC
running Red Hat Linux. Further exercises then move to a
PowerPC embedded target running Linux for the more
Feabhas Ltd advanced driver testing. The exercises demonstrate that,
5, Lowesden Works through networking, Linux offers a rich and rapid cross-
Lambourn Woodlands development environment.
Hungerford, Berkshire Throughout the exercises we make extensive reference to
RG17 7RY, UK the kernel source, browsing with tools such as rgrep and
the GUI-based source navigator. For driver debugging,
Tel : +44 (0) 1488 73050 exercises include using conventional printk and oops
Fax: +44 (0) 1488 73051 methods, as well as advanced sessions using the GNU
debugger, gdb . The workshops are completed by adding
Email info@feabhas.com a driver “permanently” to a kernel image.
Web : www.feabhas.com

Last update 30/03/04

You might also like

pFad - Phonifier reborn

Pfad - The Proxy pFad of © 2024 Garber Painting. All rights reserved.

Note: This service is not intended for secure transactions such as banking, social media, email, or purchasing. Use at your own risk. We assume no liability whatsoever for broken pages.


Alternative Proxies:

Alternative Proxy

pFad Proxy

pFad v3 Proxy

pFad v4 Proxy