Device Driver Development Resources
From Genunix
Search:
- Sun blogs
- Solaris Developer Center
- Solaris Forums, including:
- OpenSolaris
- Solaris Internals and Performance FAQ
- XPerts BigAdmin System Administration Portal
- SunSolve
Sun offers courses in Solaris OS internals, crash dump analysis, writing device drivers, DTrace, Sun Studio, and other topics useful to Solaris developers.
- Device Driver Tutorial. This tutorial provides hands-on information about how to develop device drivers for the Solaris OS. This book includes step-by-step descriptions of writing, building, installing, loading, and testing real device drivers. These instructions help you understand how drivers control devices. This book also gives an overview of the driver development environment, tools available to you to develop drivers, and techniques for avoiding some driver development problems. An excerpt from the Device Driver Tutorial, including plain text files of the sample drivers, is available on the OpenSolaris Academic and Research community as OpenSolaris Device Driver Template Files.
- Writing Device Drivers. Writing Device Drivers provides information on developing drivers for character-oriented devices, block-oriented devices, network devices, SCSI target and HBA devices, and USB devices. It discusses how to develop multithreaded reentrant device drivers for all architectures that conform to the Solaris OS DDI/DKI. It takes a common driver development approach to avoid platform-specific issues, such as endianness and data ordering. Additional topics include hardening Solaris drivers; power management; driver autoconfiguration; programmed I/O; Direct Memory Access (DMA); device context management; compilation, installation, and testing drivers; debugging drivers; and porting Solaris drivers to a 64-bit environment.
- Advanced Interrupt Handlers in the Solaris Express 6/05 OS. The Solaris OS provides a new DDI interrupt framework for registering interrupts and deregistering interrupts. This article describes mechanisms for handling interrupts, such as registering, servicing, and removing interrupts.(March 2006)
- Porting Device Drivers for the Solaris Operating System to 64-Bit x86 Architectures. This document describes how to modify 32-bit device drivers that run on the Solaris OS to be compatible with the 64-bit Solaris 10 OS on x86 platforms. (December 2004)
For detailed reference information about the device driver interfaces, see the section 9 man pages. Section 9E describes DDI/DKI (Device Driver Interface, Driver-Kernel Interface) driver entry points. Section 9F describes DDI/DKI kernel functions. Sections 9P and 9S describe DDI/DKI properties and data structures.
MDB
- Solaris Modular Debugger Guide. This book describes the Solaris Modular Debugger (MDB), which is a general purpose debugging tool for the Solaris operating system. The primary feature of MDB is its extensibility. This book describes how to use MDB to debug complex software systems, with a particular emphasis on the facilities available for debugging the Solaris kernel and associated device drivers and modules. The book also includes a complete reference for and discussion of the MDB language syntax, debugger features, and MDB Module Programming API.
DTrace
- Solaris Dynamic Tracing Guide. DTrace is a comprehensive dynamic tracing framework for the Solaris OS. DTrace provides a powerful infrastructure to permit administrators, developers, and service personnel to concisely answer arbitrary questions about the behavior of the operating system and user programs. The Solaris Dynamic Tracing Guide describes how to use DTrace to observe, debug, and tune system behavior. This book also includes a complete reference for bundled DTrace observability tools and the D programming language.
- DTrace Case Study for Developers. Read about using DTrace, a feature of the Solaris 10 OS, for device driver development. (October 14, 2004)
OpenSolaris Communities
- Device Drivers
- Fault Management
- Networking
- Wireless Networking
- Storage
- Desktop
- Laptop
- Software Porters
OpenSolaris Projects
- Bluetooth Stack & Drivers
- Nemo: A Framework for High-Performance Networking
- Brussels - Unified NIC Configuration
- Open Sound System
- Tamarack: Removable Media Enhancements in Solaris
- Tesla: OpenSolaris Enhanced Power Management
- Wireless USB Support
- Wireless Wide Area Network
- Starfish
Articles
- So You Wanna Write Solaris Device Drivers?; James Liu; June 2008
- Inside OpenSolaris: Introduction to Solaris Drivers; Max Bruning; April 1, 2005
- Inside OpenSolaris: Solaris Driver Programming; Max Bruning; April 15, 2005
- A Comparison of Solaris, Linux, and FreeBSD Kernels; Max Bruning; October 14, 2005
- Advanced Interrupt Handlers in the Solaris Express 6/05 OS; John Stearns, Govinda Tatti, Edward Gillett and Anish Gupta; March 27, 2006
- Porting Device Drivers for the Solaris Operating System to 64-Bit x86 Architectures; Cecilia Hu; December 2004
- Notes on 64-bit Drivers and STREAMS; Sun Developer Network white paper
Books
- OpenSolaris Bible; Nicholas A. Solter, Jerry Jelinek, David Miner; Wiley; February 3, 2009; ISBN: 978-0470385487
- Solaris Internals: Solaris 10 and OpenSolaris Kernel Architecture; Jim Mauro, Richard McDougall; Prentice Hall PTR; 2 edition; July 20, 2006; ISBN: 978-0131482098
- Solaris Performance and Tools: DTrace and MDB Techniques for Solaris 10 and OpenSolaris; Richard McDougall, Jim Mauro, Brendan Gregg; Prentice Hall PTR; July 30, 2006; ISBN: 978-0131568198
- Operating System Concepts; Abraham Silberschatz, Peter Baer Galvin, Greg Gagne; Wiley; 8th edition; 2009; ISBN: 978-0470128725
- Solaris Systems Programming; Rich Teer; Prentice Hall PTR; August 29, 2004; ISBN: 978-0768682236
- Solaris Application Programming; Darryl Gove; Prentice Hall PTR; January 6, 2008; ISBN: 978-0138134556
Hardware User Resources
- Solaris OS: Hardware Compatibility Lists
- Solaris for x86 Device Support
- Third-Party Solaris Device Driver Reference List
- Sun and Third-Party HCL Resources
- Wireless Networking for OpenSolaris, including Wireless Driver Compatibility List
- Ethernet Controller Driver List and other device drivers on opensolaris.org
- Sun Device Detection Tool
- Assigning a New Device to an Existing Driver in the Solaris OS. This Tech Tip explains how to add device support to the Solaris OS by attaching an existing Solaris driver to a new device. (March 16, 2007)
- Adding Device Drivers to the New Boot Install Image in the Solaris 10 OS for x86 Platforms. This article explains how to add device driver binaries to an install image for easier installation on multiple systems. (July 10, 2006)
- For searchable lists of PCI device IDs, vendor IDs, subsystems, and device classes, see PCIDatabase.com and Sourceforge PCI IDs. These ID numbers are useful for searching the /etc/driver_aliases file to see whether your device is supported, and to use in arguments to add_drv(1M) and update_drv(1M).
