If you choose to write a device driver, you must take everything written here as a guide, and no more. I cannot guarantee that this chapter will be free of errors, and I cannot guarantee that you will not damage your computer, even if you follow these instructions exactly. It is highly unlikely that you will damage it, but I cannot guarantee against it. There is only one ``infallible'' direction I can give you: Back up! Back up before you test your new device driver, or you may regret it later.
Quite a few other references are also available on the topic of writing Linux device drivers by now. I put up some (slightly outdated by now, but still worth reading, I think) notes for a talk I gave in May 1995 entitled Writing Linux Device Drivers, which is specifically oriented at character devices implemented as kernel runtime-loadable modules.
Linux Journal has had a long-running series of articles called Kernel Korner which, despite the wacky name, has had quite a bit of useful information on it. Some of the articles from that column may be available on the web; most of them are available for purchase as back issues. One particularly useful series of articles, which focussed in far more detail than my 30 minute talk on the subject of kernel runtime-loadable modules, was in issues 23, 24, 25, 26, and 28. They were written by Alessandro Rubini and Georg v. Zezschwitz. Issue 29 is slated (as of this writing) to have an article on writing network device drivers, written by Alan Cox. Issues 9, 10, and 11 have a series that I wrote on block device drivers.
Copyright (C) 1992, 1993, 1994, 1996 Michael K. Johnson,
johnsonm@redhat.com.
DMA to user space  by Marcel Boosten
 
 
How a device driver can driver his device  by Kim yeonseop
 
 
Untitled
 
 
memcpy error?  by Edgar Vonk 
Unable to handle kernel paging request - error  by Edgar Vonk 
_syscallX() Macros  by Tom Howley 
MediaMagic Sound Card DSP-16.  How to run in Linux.  by Robert Hinson 
What does mark_bh() do?  by Erik Petersen 
Untitled  by Praveen Dwivedi 
3D Acceleration  by jamesbat@innotts.co.uk 
Device Drivers: /dev/radio...  by Matthew Kirkwood 
Does anybody know why kernel wakes my driver up without apparant reasons?  by David van Leeuwen 
Getting a DMA buffer aligned with 64k boundaries  by Juan de La Figuera Bayon 
Hardware Interface I/O Access  by Terry Moore 
Is Anybody know something about SIS 496 IDE chipset?  by Alexander 
Vertical Retrace Interrupt - I need to use it  by Brynn Rogers 
help working with skb structures  by arkane 
Interrupt Sharing ?  by Frieder Löffler 
Device Driver notification of "Linux going down"  by Stan Troeh 
Is waitv honored?  by Michael K. Johnson 
PCI Driver  by Flavia Donno 
There is linux-2.0/drivers/pci/pci.c  by Hasdi 
Re: Network Device Drivers  by Paul Gortmaker 
Re: Network Device Drivers  by Neal Tucker 
Transmit function  by Joerg Schorr 
Re: Transmit function  by Paul Gortmaker 
Skbuff  by Joerg Schorr