Log In
Or create an account ->
Imperial Library
Home
About
News
Upload
Forum
Help
Login/SignUp
Index
Title Page
Copyright and Credits
Linux Device Driver Development Cookbook
About Packt
Why subscribe?
Packt.com
Contributors
About the author
About the reviewers
Packt is searching for authors like you
Preface
Who this book is for
What this book covers
To get the most out of this book
Download the example code files
Download the color images
Conventions used
Kernel and logging messages
File modifications
Serial and network connections
Other conventions
Sections
Getting ready
How to do it…
How it works…
There's more…
See also
Get in touch
Reviews
Installing the Development System
Technical requirements
Setting up the host machine
Getting ready
How to do it...
See also
Working with the serial console
Getting ready
How to do it...
See also
Configuring and building the kernel
Getting ready
How to do it...
See also
Setting up the target machine
Getting ready
How to do it...
Adding Debian files
Adding the kernel
Setting up the booting variables
Setting up the networking
See also
Doing native compiling on foreign hardware
Getting ready
How to do it...
Installing and configuring schroot
Configuring the emulated OS
See also
A Peek Inside the Kernel
Technical requirements
Adding custom code to the sources
Getting ready
How to do it...
How it works...
See also
Using kernel messages
Getting ready
How to do it...
How it works...
There's more...
Filtering kernel messages
See also
Working with kernel modules
Getting ready
How to do it...
How it works...
See also
Using module parameters
Getting ready
How to do it...
How it works...
See also
Working with Char Drivers
Technical requirements
Creating the simplest char driver
Getting ready
How to do it...
How it works...
There's more...
See also
Exchanging data with a char driver
Getting ready
How to do it...
How it works...
There's more...
See also
Using the “Everything Is a File” abstraction
Getting ready
How to do it...
How it works...
Using the Device Tree
Technical requirements
Using the device tree compiler and utilities
Getting ready
How to do it...
How it works...
There's more...
Reverting a binary device tree into its source
See also
Getting application-specific data from a device tree
Getting ready
How to do it...
How it works...
There's more...
See also
Using a device tree to describe a character driver
Getting ready
How to do it...
How it works...
There's more...
How device files are created in /dev
Downloading the firmware
Getting ready
How to do it...
How it works...
There's more
See also
Configuring CPU pins for specific peripherals
How to do it...
How it works...
See also
Managing Interrupts and Concurrency
Technical requirements
Implementing an interrupt handler
Getting ready
How to do it...
How it works...
There's more...
See also
Deferring work
Getting ready
How to do it...
Tasklets
Workqueues
There's more...
Tasklets
Workqueues
See also
Managing time with kernel timers
Getting ready
How to do it...
How it works...
There's more...
Legacy kernel timers
See also
Waiting for an event
Getting ready
How to do it...
Waitqueues
Completions
How it works...
Waitqueues
Completions
There's more...
Waitqueues
Completions
See also
Performing atomic operations
Getting ready
How to do it...
Mutexes
Spinlocks
How it works...
Mutexes
Spinlocks
There's more...
Mutexes
Spinlocks
The atomic data type
See also
Miscellaneous Kernel Internals
Technical requirements
Using kernel data types
Getting ready
How to do it...
How it works...
There's more...
See also
Managing helper functions
Getting ready
How to do it...
There's more...
See also
Dynamic memory allocation
How to do it...
There's more...
See also
Managing kernel linked lists
Getting ready
How to do it...
There's more...
See also
Using kernel hash tables
Getting ready
How to do it...
There's more...
See also
Getting access to I/O memory
Getting ready
How to do it...
How it works...
See also
Spending time in the kernel
Getting ready
How to do it...
There's more...
See also
Advanced Char Driver Operations
Technical requirements
Going up and down within a file with lseek()
Getting ready
How to do it...
How it works...
There's more...
See also
Using ioctl() for custom commands
Getting ready
How to do it...
How it works...
There's more...
See also
Accessing I/O memory with mmap()
Getting ready
How to do it...
How it works...
There's more...
See also
Locking with the process context
How to do it...
How it works...
See also
Locking (and syncing) with the interrupt context
Getting ready
How to do it...
How it works...
There's more...
See also
Waiting for I/O operations with poll() and select()
Getting ready
How to do it...
There's more...
See also
Managing asynchronous notifications with fasync()
Getting ready
How to do it...
There's more...
See also
Additional Information: Working with Char Drivers
Exchanging data with a char driver
Additional Information: Using the Device Tree
Device tree internals
Using the device tree compiler and utilities
Obtaining a source form of a running device tree
Notes on the device tree utilities
Getting application-specific data from a device tree
Using a device tree to describe a character driver
How to manage different device types
How to add sysfs properties to devices
Configuring the CPU pins for specific peripherals
The Armada 3720
The i.MX7Dual
The SAMA5D3
Using a device tree to describe a character driver
Additional Information: Managing Interrupts and Concurrency
Deferring work
The shared work queue
The container_of() macro
Notifiers
Kernel timers
Additional Information: Miscellaneous Kernel Internals
Dynamic memory allocation
Kernel doubly linked lists
Kernel hash tables
Getting access to I/O memory
Spending time in the kernel
Additional Information: Advanced Char Driver Operations
Technical requirements
Going up and down within a file with lseek()
Using ioctl() for custom commands
Accessing I/O memory with mmap()
Locking with the process context
Waiting for I/O operations with poll() and select()
Managing asynchronous notifications with fasync()
Other Books You May Enjoy
Leave a review - let other readers know what you think
← Prev
Back
Next →
← Prev
Back
Next →