Documentation

From OpenDriversWiki

The following series of sections attempts to capture links to documentation that provides reference material and guidelines for device driver developers. This page has been laid out to flow in a logical order. It starts with material that helps describe how the Linux open source community interacts and operates, then progresses to a more technical set of documents for those wanting to contribute code, and finally wraps up with information that a newly informed and educated driver developer may find of interest.

Table of contents
  1. Linux Open Source Community Background Information
    1. Linux Open Source Drivers for Newbies
    2. The Non-Technical Process and Procedures of Linux Kernel Development
  2. Submitting Code to the Open Source Community
    1. Linux Kernel Coding Style
    2. How to Create a Kernel Patch
    3. The Perfect Patch
    4. Linux Kernel Patch Submission Format
    5. Kernel Newbies Wiki
    6. Linux Kernel Development: Getting Started
  3. Writing/Porting Device Drivers
    1. Developing Open Source Drivers
    2. Writing Portable Device Drivers
    3. Porting Device Drivers to the 2.6 Kernel
    4. How NOT to Write a Kernel Driver
    5. The Kernel and Device Drivers: Do's and Don'ts
    6. Linux Device Drivers, Third Edition (2005)
    7. Kernel Mentors Project
  4. Kernel Driver Infrastructure
    1. The Linux Kernel Driver Model
    2. The Driver Model Core, Part 1
    3. The Sysfs Filesystem (July 2005)
    4. Device Classes
  5. Other Useful Sites and Documents
    1. The Linux Kernel Tree Documentation Directory
    2. Online version of the kernel DocBooks rendered in HTML format starting with 2.6.16.5
    3. The Linux Documentation Project
    4. Stable API Nonsense
    5. API Changes in the 2.6 Kernel Series
    6. Guide to the implementation of SCSI in Linux 2.6.X kernel
    7. Devices With No Drivers In the Kernel



Linux Open Source Community Background Information

This section is for developers completely new to open source who have absolutely no prior knowledge about the open source community. The material in this section will try to describe how the Linux open source community operates. The information here will help describe the social interactions and atmosphere of the open source community and give the reader an outline of the non-technical processes and procedures that happen within the Linux open source community.


Submitting Code to the Open Source Community

This section applies to the open source developer newbie. He/She understands how the community operates and interacts and are now wanting to start contributing code. However, he/she is unaware of how to submit the code or even where to submit the code. This section will provide information on how to format and submit his/her code to the open source community.


Writing/Porting Device Drivers

This section is for the developer who understands how the open source community opperates, how new code should look, and how to submit that new code. This section is for the developer interested in writing a new driver or porting an existing driver to Linux.


Kernel Driver Infrastructure

This is for the developer who just isn't satisfied with writing or porting a device driver to Linux. He/She is still curious how the Kernel Driver Infrastructure works. This next section dives depper into the inner workings of the Linux kernel.


Other Useful Sites and Documents

This section has some pointers to other useful sites and documents that we feel individuals would also be interested in.

Personal tools