0 valutazioniIl 0% ha trovato utile questo documento (0 voti)
87 visualizzazioni1 pagina
Linux is now being designed into everything from super computers down to mobile phones. To deploy Linux in your design very few applications require the knowledge to re-program the actual Linux kernel. This course caters for the many engineers needing only the skills to design and test a Linux device driver.
Linux is now being designed into everything from super computers down to mobile phones. To deploy Linux in your design very few applications require the knowledge to re-program the actual Linux kernel. This course caters for the many engineers needing only the skills to design and test a Linux device driver.
Copyright:
Attribution Non-Commercial (BY-NC)
Formati disponibili
Scarica in formato PDF, TXT o leggi online su Scribd
Linux is now being designed into everything from super computers down to mobile phones. To deploy Linux in your design very few applications require the knowledge to re-program the actual Linux kernel. This course caters for the many engineers needing only the skills to design and test a Linux device driver.
Copyright:
Attribution Non-Commercial (BY-NC)
Formati disponibili
Scarica in formato PDF, TXT o leggi online su Scribd
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