Difference between revisions of "Device drivers"

From eLinux.org
Jump to: navigation, search
(3 intermediate revisions by the same user not shown)
Line 2: Line 2:
 
* [https://github.com/makelinux/ldt/ LDT - Linux Driver Template] - sample template of Linux device driver for learning and starting source for a custom driver. Implements UART char device driver for example. Uses following Linux facilities: module, platform driver, file operations (read/write, mmap, ioctl, blocking and nonblocking mode, polling), kfifo, completion, interrupt, tasklet, work, kthread, timer, misc device, proc fs, UART 0x3f8, HW loopback, SW loopback, ftracer. The code is in working condition and runs with test script.
 
* [https://github.com/makelinux/ldt/ LDT - Linux Driver Template] - sample template of Linux device driver for learning and starting source for a custom driver. Implements UART char device driver for example. Uses following Linux facilities: module, platform driver, file operations (read/write, mmap, ioctl, blocking and nonblocking mode, polling), kfifo, completion, interrupt, tasklet, work, kthread, timer, misc device, proc fs, UART 0x3f8, HW loopback, SW loopback, ftracer. The code is in working condition and runs with test script.
 
* [https://github.com/martinezjavier/ldd3/ LDD3 - Samples for boot Linux Device Driver, 3rd edition, updated], compiled with kernel 3.2.0
 
* [https://github.com/martinezjavier/ldd3/ LDD3 - Samples for boot Linux Device Driver, 3rd edition, updated], compiled with kernel 3.2.0
* [http://lxr.free-electrons.com/source/drivers/media/video/vivi.c vivi.c - Virtual Video driver, uses V4L2]
+
** [https://github.com/martinezjavier/ldd3/blob/master/pci/pci_skel.c pci_skel.c] - PCI skeleton
 +
** [https://github.com/martinezjavier/ldd3/blob/master/sbull/sbull.c sbull.c] - simple block device
 +
** [https://github.com/martinezjavier/ldd3/tree/master/scull scull] - simple char device
 +
** [https://github.com/martinezjavier/ldd3/blob/master/snull/snull.c snull.c] - simple network device
 +
* [http://lxr.free-electrons.com/source/drivers/media/video/vivi.c vivi.c - Virtual Video driver, uses V4L2] - works
 
* [http://lxr.free-electrons.com/source/drivers/media/video/mem2mem_testdev.c mem2mem_testdev.c - virtual v4l2-mem2mem example device driver]
 
* [http://lxr.free-electrons.com/source/drivers/media/video/mem2mem_testdev.c mem2mem_testdev.c - virtual v4l2-mem2mem example device driver]
 
* [http://lxr.free-electrons.com/source/drivers/usb/usb-skeleton.c usb-skeleton.c - USB driver skeleton] (can be compiled with trivial fix)
 
* [http://lxr.free-electrons.com/source/drivers/usb/usb-skeleton.c usb-skeleton.c - USB driver skeleton] (can be compiled with trivial fix)
Line 9: Line 13:
 
* [http://lxr.free-electrons.com/source/drivers/net/loopback.c loopback.c - simple net_device implementing ifconfig  lo]
 
* [http://lxr.free-electrons.com/source/drivers/net/loopback.c loopback.c - simple net_device implementing ifconfig  lo]
 
Manuals:
 
Manuals:
* [http://en.wikibooks.org/wiki/The_Linux_Kernel Linux kernel internals reference, wikibook]
+
* [http://en.wikibooks.org/wiki/The_Linux_Kernel Linux kernel internals reference, wikibook] - under construction
 
* [http://www.makelinux.net/ldd3/ Linux Device Drivers, 3rd Edition]
 
* [http://www.makelinux.net/ldd3/ Linux Device Drivers, 3rd Edition]
 +
* [http://www.makelinux.net/reference.d/drivers_linux Tutorial for writing parallel port driver]
  
 
PS:
 
PS:
 
*[[Firmware]] could be merged with this page
 
*[[Firmware]] could be merged with this page

Revision as of 05:20, 3 July 2013

Sample drivers:

Manuals:

PS: