skip to content
Covid-19 virus
COVID-19 Resources

Reliable information about the coronavirus (COVID-19) is available from the World Health Organization (current situation, international travel). Numerous and frequently-updated resource results are available from this search. OCLC’s WebJunction has pulled together information and resources to assist library staff as they consider how to handle coronavirus issues in their communities.

Image provided by: CDC/ Alissa Eckert, MS; Dan Higgins, MAM
Essential Linux device drivers Preview this item
ClosePreview this item

Essential Linux device drivers

Author: Sreekrishnan Venkateswaran
Publisher: Upper Saddle River, NJ : Prentice Hall, 2010.
Series: Prentice Hall open source software development series
Edition/Format:   Print book : English : 1. ed., 4. printView all editions and formats

One of the world's most experienced Linux driver developers demonstrates how to develop reliable Linux drivers for virtually any device. This resource is for any programmer with a working knowledge  Read more...


(not yet rated) 0 with reviews - Be the first.

More like this

Find a copy in the library

&AllPage.SpinnerRetrieving; Finding libraries that hold this item...


Document Type: Book
All Authors / Contributors: Sreekrishnan Venkateswaran
ISBN: 0132396556 9780132396554
OCLC Number: 705767389
Description: XXX, 714 Seiten : Illustrationen, Diagramme.
Contents: Foreword xxiPreface xxiiiAcknowledgments xxixAbout the Author xxxChapter 1 Introduction 1Evolution 2The GNU Copyleft 3Kernelorg 4Mailing Lists and Forums 4Linux Distributions 5Looking at the Sources 6Building the Kernel 10Loadable Modules 12Before Starting 14Chapter 2 A Peek Inside the Kernel 17Booting Up 18Kernel Mode and User Mode 30Process Context and Interrupt Context 30Kernel Timers 31HZ and Jiffies 31Long Delays 33Short Delays 36Pentium Time Stamp Counter 36Real Time Clock 37Concurrency in the Kernel 39Spinlocks and Mutexes 39Atomic Operators 45Reader-Writer Locks 46Debugging 48Process Filesystem 49Allocating Memory 49Looking at the Sources 52Chapter 3 Kernel Facilities 55Kernel Threads 56Creating a Kernel Thread 56Process States and Wait Queues 61User Mode Helpers 63Helper Interfaces 65Linked Lists 65Hash Lists 72Work Queues 72Notifier Chains 74Completion Interface 78Kthread Helpers 81Error-Handling Aids 83Looking at the Sources 85Chapter 4 Laying the Groundwork 89Introducing Devices and Drivers 90Interrupt Handling 92Interrupt Context 92Assigning IRQs 94Device Example: Roller Wheel 94Softirqs and Tasklets 99The Linux Device Model 103Udev 103Sysfs, Kobjects, and Device Classes 106Hotplug and Coldplug 110Microcode Download 111Module Autoload 112Memory Barriers 114Power Management 114Looking at the Sources 115Chapter 5 Character Drivers 119Char Driver Basics 120Device Example: System CMOS 121Driver Initialization 122Open and Release 127Exchanging Data 129Seek 136Control 137Sensing Data Availability 139Poll 139Fasync 142Talking to the Parallel Port 145Device Example: Parallel Port LED Board 146RTC Subsystem 156Pseudo Char Drivers 157Misc Drivers 160Device Example: Watchdog Timer 160Character Caveats 166Looking at the Sources 1676556_Bookindb i6556_ix 3/4/08 9:31:21 AMChapter 6 Serial Drivers 171Layered Architecture 173UART Drivers 176Device Example: Cell Phone 178RS-485 191TTY Drivers 192Line Disciplines 194Device Example: Touch Controller 195Looking at the Sources 205Chapter 7 Input Drivers 207Input Event Drivers 210The Evdev Interface 210Input Device Drivers 216Serio 217Keyboards 217Mice 220Touch Controllers 227Accelerometers 228Output Events 228Debugging 230Looking at the Sources 231Chapter 8 The Inter-Integrated Circuit Protocol 233What's I2C/SMBus? 234I2C Core 235Bus Transactions 237Device Example: EEPROM 238Initializing 238Probing the Device 241Checking Adapter Capabilities 244Accessing the Device 244More Methods 246Device Example: Real Time Clock 247I2C-dev 251Hardware Monitoring Using LM-Sensors 251The Serial Peripheral Interface Bus 251The 1-Wire Bus 254Debugging 254Looking at the Sources 255Chapter 9 PCMCIA and Compact Flash 257What's PCMCIA/CF? 258Linux-PCMCIA Subsystem 260Host Controller Drivers 262PCMCIA Core 263Driver Services 263Client Drivers 264Data Structures 264Device Example: PCMCIA Card 267Tying the Pieces Together 271PCMCIA Storage 272Serial PCMCIA 272Debugging 273Looking at the Sources 275Chapter 10 Peripheral Component Interconnect 277The PCI Family 278Addressing and Identification 281Accessing PCI Regions 285Configuration Space 285I/O and Memory 286Direct Memory Access 288Device Example: Ethernet-Modem Card 292Initializing and Probing 293Data Transfer 301Debugging 308Looking at the Sources 308Chapter 11 Universal Serial Bus 311USB Architecture 312Bus Speeds 314Host Controllers 315Transfer Types 315Addressing 316Linux-USB Subsystem 317Driver Data Structures 317The usb_device Structure 318USB Request Blocks 319Pipes 321Descriptor Structures 322Enumeration 324Device Example: Telemetry Card 324Initializing and Probing 325Accessing Registers 332Data Transfer 335Class Drivers 338Mass Storage 339USB-Serial 345Human Interface Devices 348Bluetooth 348Gadget Drivers 348Debugging 349Looking at the Sources 351Chapter 12 Video Drivers 355Display Architecture 356Linux-Video Subsystem 359Display Parameters 361The Frame Buffer API 362Frame Buffer Drivers 365Device Example: Navigation System 365Console Drivers 380Device Example: Cell Phone Revisited 382Boot Logo 387Debugging 387Looking at the Sources 388Chapter 13 Audio Drivers 391Audio Architecture 392Linux-Sound Subsystem 394Device Example: MP3 Player 396Driver Methods and Structures 399ALSA Programming 409Debugging 412Looking at the Sources 412Chapter 14 Block Drivers 415Storage Technologies 416Linux Block I/O Layer 421I/O Schedulers 422Block Driver Data Structures and Methods 423Device Example: Simple Storage Controller 426Initialization 427Block Device Operations 430Disk Access 432Advanced Topics 434Debugging 436Looking at the Sources 437Chapter 15 Network Interface Cards 439Driver Data Structures 440Socket Buffers 441The Net Device Interface 443Activation 444Data Transfer 444Watchdog 445Statistics 445Configuration 446Bus Specific 448Talking with Protocol Layers 448Receive Path 448Transmit Path 449Flow Control 449Buffer Management and Concurrency Control 450Device Example: Ethernet NIC 451ISA Network Drivers 457Asynchronous Transfer Mode 458Network Throughput 459Driver Performance 459Protocol Performance 461Looking at the Sources 461Chapter 16 Linux Without Wires 465Bluetooth 467BlueZ 469Device Example: CF Card 471Device Example: USB Adapter 471RFCOMM 473Networking 475Human Interface Devices 477Audio 477Debugging 478Looking at the Sources 478Infrared 478Linux-IrDA 480Device Example: Super I/O Chip 482Device Example: IR Dongle 483IrComm 486Networking 486IrDA Sockets 487Linux Infrared Remote Control 488Looking at the Sources 489WiFi 489Configuration 490Device Drivers 494Looking at the Sources 496Cellular Networking 496GPRS 496CDMA 498Current Trends 500Chapter 17 Memory Technology Devices 503What's Flash Memory? 504Linux-MTD Subsystem 505Map Drivers 506Device Example: Handheld 506NOR Chip Drivers 511NAND Chip Drivers 513User Modules 516Block Device Emulation 516Char Device Emulation 517JFFS2 517YAFFS2 518MTD-Utils 518Configuring MTD 519eXecute In Place 520The Firmware Hub 520Debugging 524Looking at the Sources 524Chapter 18 Embedding Linux 527Challenges 528Component Selection 530Tool Chains 531Embedded Bootloaders 531Memory Layout 535Kernel Porting 537Embedded Drivers 538Flash Memory 538UART 539Buttons and Wheels 539PCMCIA/CF 540SD/MMC 540USB 540RTC 541Audio 541Touch Screen 541Video 541CPLD/FPGA 542Connectivity 542Domain-Specific Electronics 542More Drivers 543The Root Filesystem 544NFS-Mounted Root 544Compact Middleware 546Test Infrastructure 548Debugging 548Board Rework 549Debuggers 550Chapter 19 Drivers in User Space 551Process Scheduling and Response Times 553The Original Scheduler 553The O(1) Scheduler 553The CFS Scheduler 555Response Times 555Accessing I/O Regions 558Accessing Memory Regions 562User Mode SCSI 565User Mode USB 567User Mode I2C 571UIO 573Looking at the Sources 574Chapter 20 More Devices and Drivers 577ECC Reporting 578Device Example: ECC-Aware Memory Controller 579Frequency Scaling 583Embedded Controllers 584ACPI 585ISA and MCA 587FireWire 588Intelligent Input/Output 589Amateur Radio 590Voice over IP 590High-Speed Interconnects 591InfiniBand 592RapidIO 592Fibre Channel 592iSCSI 593Chapter 21 Debugging Device Drivers 595Kernel Debuggers 596Entering a Debugger 597Kernel Debugger (kdb) 598Kernel GNU Debugger (kgdb) 600GNU Debugger (gdb) 604JTAG Debuggers 605Downloads 609Kernel Probes 609Kprobes 609Jprobes 614Return Probes 617Limitations 619Looking at the Sources 620Kexec and Kdump 620Kexec 620Kexec with Kdump 621Kdump 622Looking at the Sources 629Profiling 629Kernel Profiling with OProfile 629Application Profiling with Gprof 633Tracing 634Linux Trace Toolkit 634Linux Test Project 638User Mode Linux 638Diagnostic Tools 638Kernel Hacking Config Options 639Test Equipment 640Chapter 22 Maintenance and Delivery 641Coding Style 642Change Markers 642Version Control 643Consistent Checksums 643Build Scripts 645Portable Code 647Chapter 23 Shutting Down 649Checklist 650What Next? 651Appendix A Linux Assembly 653Debugging 659Appendix B Linux and the BIOS 661Real Mode Calls 662Protected Mode Calls 665BIOS and Legacy Drivers 666Appendix C Seq Files 669The Seq File Advantage 670Updating the NVRAM Driver 677Looking at the Sources 679Index 681
Series Title: Prentice Hall open source software development series
Responsibility: Sreekrishnan Venkateswaran.


User-contributed reviews
Retrieving GoodReads reviews...
Retrieving DOGObooks reviews...


Be the first.

Similar Items

Related Subjects:(2)

Confirm this request

You may have already requested this item. Please select Ok if you would like to proceed with this request anyway.

Linked Data

Primary Entity<\/h3>
<http:\/\/\/oclc\/705767389<\/a>> # Essential Linux device drivers<\/span>\u00A0\u00A0\u00A0\u00A0a schema:CreativeWork<\/a>, schema:Book<\/a> ;\u00A0\u00A0\u00A0library:oclcnum<\/a> \"705767389<\/span>\" ;\u00A0\u00A0\u00A0library:placeOfPublication<\/a> <http:\/\/\/entity\/work\/data\/116297092#Place\/upper_saddle_river_nj<\/a>> ; # Upper Saddle River, NJ<\/span>\u00A0\u00A0\u00A0library:placeOfPublication<\/a> <http:\/\/\/vocabulary\/countries\/nju<\/a>> ;\u00A0\u00A0\u00A0schema:about<\/a> <http:\/\/\/entity\/work\/data\/116297092#Topic\/treiber_programm<\/a>> ; # Treiber (Programm)<\/span>\u00A0\u00A0\u00A0schema:about<\/a> <http:\/\/\/entity\/work\/data\/116297092#Topic\/linux<\/a>> ; # LINUX<\/span>\u00A0\u00A0\u00A0schema:bookEdition<\/a> \"1. ed., 4. print.<\/span>\" ;\u00A0\u00A0\u00A0schema:bookFormat<\/a> bgn:PrintBook<\/a> ;\u00A0\u00A0\u00A0schema:creator<\/a> <http:\/\/\/viaf\/53615372<\/a>> ; # Sreekrishnan Venkateswaran<\/span>\u00A0\u00A0\u00A0schema:datePublished<\/a> \"2010<\/span>\" ;\u00A0\u00A0\u00A0schema:exampleOfWork<\/a> <http:\/\/\/entity\/work\/id\/116297092<\/a>> ;\u00A0\u00A0\u00A0schema:inLanguage<\/a> \"en<\/span>\" ;\u00A0\u00A0\u00A0schema:isPartOf<\/a> <http:\/\/\/entity\/work\/data\/116297092#Series\/prentice_hall_open_source_software_development_series<\/a>> ; # Prentice Hall open source software development series<\/span>\u00A0\u00A0\u00A0schema:name<\/a> \"Essential Linux device drivers<\/span>\" ;\u00A0\u00A0\u00A0schema:productID<\/a> \"705767389<\/span>\" ;\u00A0\u00A0\u00A0schema:publication<\/a> <http:\/\/\/title\/-\/oclc\/705767389#PublicationEvent\/upper_saddle_river_nj_prentice_hall_2010<\/a>> ;\u00A0\u00A0\u00A0schema:publisher<\/a> <http:\/\/\/entity\/work\/data\/116297092#Agent\/prentice_hall<\/a>> ; # Prentice Hall<\/span>\u00A0\u00A0\u00A0schema:workExample<\/a> <http:\/\/\/isbn\/9780132396554<\/a>> ;\u00A0\u00A0\u00A0wdrs:describedby<\/a> <http:\/\/\/title\/-\/oclc\/705767389<\/a>> ;\u00A0\u00A0\u00A0\u00A0.<\/div>

Related Entities<\/h3>
<http:\/\/\/entity\/work\/data\/116297092#Agent\/prentice_hall<\/a>> # Prentice Hall<\/span>\u00A0\u00A0\u00A0\u00A0a bgn:Agent<\/a> ;\u00A0\u00A0\u00A0schema:name<\/a> \"Prentice Hall<\/span>\" ;\u00A0\u00A0\u00A0\u00A0.<\/div>
<http:\/\/\/entity\/work\/data\/116297092#Place\/upper_saddle_river_nj<\/a>> # Upper Saddle River, NJ<\/span>\u00A0\u00A0\u00A0\u00A0a schema:Place<\/a> ;\u00A0\u00A0\u00A0schema:name<\/a> \"Upper Saddle River, NJ<\/span>\" ;\u00A0\u00A0\u00A0\u00A0.<\/div>
<http:\/\/\/entity\/work\/data\/116297092#Series\/prentice_hall_open_source_software_development_series<\/a>> # Prentice Hall open source software development series<\/span>\u00A0\u00A0\u00A0\u00A0a bgn:PublicationSeries<\/a> ;\u00A0\u00A0\u00A0schema:hasPart<\/a> <http:\/\/\/oclc\/705767389<\/a>> ; # Essential Linux device drivers<\/span>\u00A0\u00A0\u00A0schema:name<\/a> \"Prentice Hall open source software development series<\/span>\" ;\u00A0\u00A0\u00A0\u00A0.<\/div>
<http:\/\/\/entity\/work\/data\/116297092#Topic\/linux<\/a>> # LINUX<\/span>\u00A0\u00A0\u00A0\u00A0a schema:Intangible<\/a> ;\u00A0\u00A0\u00A0schema:name<\/a> \"LINUX<\/span>\" ;\u00A0\u00A0\u00A0\u00A0.<\/div>
<http:\/\/\/entity\/work\/data\/116297092#Topic\/treiber_programm<\/a>> # Treiber (Programm)<\/span>\u00A0\u00A0\u00A0\u00A0a schema:Intangible<\/a> ;\u00A0\u00A0\u00A0schema:name<\/a> \"Treiber (Programm)<\/span>\" ;\u00A0\u00A0\u00A0\u00A0.<\/div>
<http:\/\/\/vocabulary\/countries\/nju<\/a>>\u00A0\u00A0\u00A0\u00A0a schema:Place<\/a> ;\u00A0\u00A0\u00A0dcterms:identifier<\/a> \"nju<\/span>\" ;\u00A0\u00A0\u00A0\u00A0.<\/div>
<http:\/\/\/viaf\/53615372<\/a>> # Sreekrishnan Venkateswaran<\/span>\u00A0\u00A0\u00A0\u00A0a schema:Person<\/a> ;\u00A0\u00A0\u00A0schema:familyName<\/a> \"Venkateswaran<\/span>\" ;\u00A0\u00A0\u00A0schema:givenName<\/a> \"Sreekrishnan<\/span>\" ;\u00A0\u00A0\u00A0schema:name<\/a> \"Sreekrishnan Venkateswaran<\/span>\" ;\u00A0\u00A0\u00A0\u00A0.<\/div>
<http:\/\/\/isbn\/9780132396554<\/a>>\u00A0\u00A0\u00A0\u00A0a schema:ProductModel<\/a> ;\u00A0\u00A0\u00A0schema:isbn<\/a> \"0132396556<\/span>\" ;\u00A0\u00A0\u00A0schema:isbn<\/a> \"9780132396554<\/span>\" ;\u00A0\u00A0\u00A0\u00A0.<\/div>
<http:\/\/\/title\/-\/oclc\/705767389<\/a>>\u00A0\u00A0\u00A0\u00A0a genont:InformationResource<\/a>, genont:ContentTypeGenericResource<\/a> ;\u00A0\u00A0\u00A0schema:about<\/a> <http:\/\/\/oclc\/705767389<\/a>> ; # Essential Linux device drivers<\/span>\u00A0\u00A0\u00A0schema:dateModified<\/a> \"2018-11-08<\/span>\" ;\u00A0\u00A0\u00A0void:inDataset<\/a> <http:\/\/\/dataset\/WorldCat<\/a>> ;\u00A0\u00A0\u00A0\u00A0.<\/div>
<http:\/\/\/title\/-\/oclc\/705767389#PublicationEvent\/upper_saddle_river_nj_prentice_hall_2010<\/a>>\u00A0\u00A0\u00A0\u00A0a schema:PublicationEvent<\/a> ;\u00A0\u00A0\u00A0schema:location<\/a> <http:\/\/\/entity\/work\/data\/116297092#Place\/upper_saddle_river_nj<\/a>> ; # Upper Saddle River, NJ<\/span>\u00A0\u00A0\u00A0schema:organizer<\/a> <http:\/\/\/entity\/work\/data\/116297092#Agent\/prentice_hall<\/a>> ; # Prentice Hall<\/span>\u00A0\u00A0\u00A0schema:startDate<\/a> \"2010<\/span>\" ;\u00A0\u00A0\u00A0\u00A0.<\/div>

Content-negotiable representations<\/p>