Start reading Essential Linux Device Drivers on your Kindle in under a minute. Don't have a Kindle? Get your Kindle here or start reading now with a free Kindle Reading App.

Deliver to your Kindle or other device

 
 
 

Try it free

Sample the beginning of this book for free

Deliver to your Kindle or other device

Sorry, this item is not available in
Image not available for
Colour:
Image not available
 

Essential Linux Device Drivers (Prentice Hall Open Source Software Development Series) [Kindle Edition]

Sreekrishnan Venkateswaran
5.0 out of 5 stars  See all reviews (4 customer reviews)

Print List Price: £33.99
Kindle Price: £30.68 includes VAT* & free wireless delivery via Amazon Whispernet
You Save: £3.31 (10%)
* Unlike print books, digital books are subject to VAT.

Free Kindle Reading App Anybody can read Kindle books—even without a Kindle device—with the FREE Kindle app for smartphones, tablets and computers.

To get the free app, enter your e-mail address or mobile phone number.

Formats

Amazon Price New from Used from
Kindle Edition £30.68  
Kindle Edition, 27 Mar. 2008 £30.68  
Hardcover £32.29  
Paperback --  
Kindle Daily Deal
Kindle Daily Deal: Up to 70% off
Each day we unveil a new book deal at a specially discounted price--for that day only. Learn more about the Kindle Daily Deal or sign up for the Kindle Daily Deal Newsletter to receive free e-mail notifications about each day's deal.

Book Description

“Probably the most wide ranging and complete Linux device driver book I’ve read.”

--Alan Cox, Linux Guru and Key Kernel Developer

 

“Very comprehensive and detailed, covering almost every single Linux device driver type.”

--Theodore Ts’o, First Linux Kernel Developer in North America and Chief Platform Strategist of the Linux Foundation

 

The Most Practical Guide to Writing Linux Device Drivers

Linux now offers an exceptionally robust environment for driver development: with today’s kernels, what once required years of development time can be accomplished in days. In this practical, example-driven book, one of the world’s most experienced Linux driver developers systematically demonstrates how to develop reliable Linux drivers for virtually any device. Essential Linux Device Drivers is for any programmer with a working knowledge of operating systems and C, including programmers who have never written drivers before. Sreekrishnan Venkateswaran focuses on the essentials, bringing together all the concepts and techniques you need, while avoiding topics that only matter in highly specialized situations. Venkateswaran begins by reviewing the Linux 2.6 kernel capabilities that are most relevant to driver developers. He introduces simple device classes; then turns to serial buses such as I2C and SPI; external buses such as PCMCIA, PCI, and USB; video, audio, block, network, and wireless device drivers; user-space drivers; and drivers for embedded Linux–one of today’s fastest growing areas of Linux development. For each, Venkateswaran explains the technology, inspects relevant kernel source files, and walks through developing a complete example.

 

• Addresses drivers discussed in no other book, including drivers for I2C, video, sound, PCMCIA, and different types of flash memory

• Demystifies essential kernel services and facilities, including kernel threads and helper interfaces

• Teaches polling, asynchronous notification, and I/O control

• Introduces the Inter-Integrated Circuit Protocol for embedded Linux drivers

• Covers multimedia device drivers using the Linux-Video subsystem and Linux-Audio framework

• Shows how Linux implements support for wireless technologies such as Bluetooth, Infrared, WiFi, and cellular networking

• Describes the entire driver development lifecycle, through debugging and maintenance

• Includes reference appendixes covering Linux assembly, BIOS calls, and Seq files



Product Description

From the Back Cover

“Probably the most wide ranging and complete Linux device driver book I’ve read.”

--Alan Cox, Linux Guru and Key Kernel Developer

 

“Very comprehensive and detailed, covering almost every single Linux device driver type.”

--Theodore Ts’o, First Linux Kernel Developer in North America and Chief Platform Strategist of the Linux Foundation

 

The Most Practical Guide to Writing Linux Device Drivers

Linux now offers an exceptionally robust environment for driver development: with today’s kernels, what once required years of development time can be accomplished in days. In this practical, example-driven book, one of the world’s most experienced Linux driver developers systematically demonstrates how to develop reliable Linux drivers for virtually any device. Essential Linux Device Drivers is for any programmer with a working knowledge of operating systems and C, including programmers who have never written drivers before. Sreekrishnan Venkateswaran focuses on the essentials, bringing together all the concepts and techniques you need, while avoiding topics that only matter in highly specialized situations. Venkateswaran begins by reviewing the Linux 2.6 kernel capabilities that are most relevant to driver developers. He introduces simple device classes; then turns to serial buses such as I2C and SPI; external buses such as PCMCIA, PCI, and USB; video, audio, block, network, and wireless device drivers; user-space drivers; and drivers for embedded Linux–one of today’s fastest growing areas of Linux development. For each, Venkateswaran explains the technology, inspects relevant kernel source files, and walks through developing a complete example.

 

• Addresses drivers discussed in no other book, including drivers for I2C, video, sound, PCMCIA, and different types of flash memory

• Demystifies essential kernel services and facilities, including kernel threads and helper interfaces

• Teaches polling, asynchronous notification, and I/O control

• Introduces the Inter-Integrated Circuit Protocol for embedded Linux drivers

• Covers multimedia device drivers using the Linux-Video subsystem and Linux-Audio framework

• Shows how Linux implements support for wireless technologies such as Bluetooth, Infrared, WiFi, and cellular networking

• Describes the entire driver development lifecycle, through debugging and maintenance

• Includes reference appendixes covering Linux assembly, BIOS calls, and Seq files

About the Author

Sreekrishnan Venkateswaran has spent more than a decade working in IBM product development laboratories. He has ported Linux to devices ranging from wristwatches and music players to PDAs, VoIP phones, and even pacemaker programmers. He was a Contributing Editor and kernel columnist for Linux Magazine for more than two years.


Product details

  • Format: Kindle Edition
  • File Size: 8362 KB
  • Print Length: 744 pages
  • Simultaneous Device Usage: Up to 5 simultaneous devices, per publisher limits
  • Publisher: Prentice Hall; 1 edition (27 Mar. 2008)
  • Sold by: Amazon Media EU S.à r.l.
  • Language: English
  • ASIN: B0015DTWEG
  • Text-to-Speech: Enabled
  • X-Ray:
  • Word Wise: Not Enabled
  • Average Customer Review: 5.0 out of 5 stars  See all reviews (4 customer reviews)
  • Amazon Bestsellers Rank: #545,704 Paid in Kindle Store (See Top 100 Paid in Kindle Store)
  •  Would you like to give feedback on images?


More About the Author

Discover books, learn about writers, and more.

Customer Reviews

4 star
0
3 star
0
2 star
0
1 star
0
5.0 out of 5 stars
5.0 out of 5 stars
Most Helpful Customer Reviews
13 of 13 people found the following review helpful
5.0 out of 5 stars Magnificent! I'll probably wear this book out! 4 Jun. 2008
Format:Hardcover
This book starts by covering the kernel architecture, placing drivers in their context and discussing the support structures that exist for them, with that start everything else follows naturally, and logically.

This book is bang up to date and addresses every significant class of driver, and many of the idiosyncrasies of the driver models. While old hands will know much of this material already, this is the one stop reference for 90% of the details you'll need for the task in hand, and has excellent pointers for where to find the rest.

This is one of the best "working knowledges" available on paper, and is both a great starting point on the road of experience, as well as a worthy reference for those en-route.
Was this review helpful to you?
3 of 3 people found the following review helpful
Format:Hardcover
If you read this review in two years, this book is no longer up-to-date.
Actually, some contents is already outdated when I write this review - but that's life in the Linux Kernel: it changes at an amazing speed.

Venkateswaran does a good job at trying to be as complete as possible - He discussed how to write a driver for almost any of the subsystems (char device, network device, compact flash, USB, wifi, etc). Every discussion tries to bring in as much of the material as possible. That's good, but it also has its negative side as I noticed several small errors in the discussions. In general, this is a great book - it really is enough to bring you up-to-speed with driver development for Linux. In details, it is even greater as you'll find almost any subsystem documented.
Was this review helpful to you?
3 of 3 people found the following review helpful
5.0 out of 5 stars Superb book - highly informative 19 Oct. 2010
By Yay!! TOP 500 REVIEWER
Format:Hardcover|Verified Purchase
Very easy to read - it's an absolute pleasure.
Highly informative - in absolute detail. This is the third edition, so it has Linux 2.6.

It's interesting, gripping yet so darn easy to read. Very few authors could produce a book of this calibre.

Top marks for what this author has accomplished.
Comment | 
Was this review helpful to you?
By Yogi2
Format:Hardcover|Verified Purchase
I have a mentality that I can think out very complex logic, but have difficulty 'speaking geek'. Therefore my very high rating may not be shared by all. However, the background information as to how the Linux kernel is structured in its massive number of files is presented in English rather than geek. It explains in a practical way what to do to modify the kernel at all. I found it a self contained , not leaving the reader 'high and dry'. It may be heavy going, but to try and grasp and 'get into' such a big piece of ever changing software is inevitably that. To try and 'gloss over' issues would be false economy if modification made are to be stable and work as intended. Therefore I am grateful the necessary groundwork is properly tackled. Time wise, I have a long way to go before embedding Linux into any product of mine, but I feel with this book when I get there it will be a product to be proud of rather than a half understood fudge. It obviously concentrates on the areas most likely to need customisation. Therefore the book certainly suites me, and I highly recommend it to anyone thinking of producing a Linux modification.
Comment | 
Was this review helpful to you?
Most Helpful Customer Reviews on Amazon.com (beta)
Amazon.com: 4.3 out of 5 stars  26 reviews
32 of 37 people found the following review helpful
3.0 out of 5 stars Can't replace the O'Reilly text 28 Jan. 2009
By Brian Hill - Published on Amazon.com
Format:Hardcover
Like other reviews have stated, this first half of this book is a concise, useful introduction to certain Linux kernel concepts. But the title of the book leads the reader to expect that they could produce a Linux device driver using this book. That turns out not to be the case - no one could produce a driver with this book without the benefit of other reference material. In short, while the O'Reilly "Linux Device Drivers" text has it's shortcomings and is starting to become dated, it is still the only text with which the reader can use as a primary reference to create their own driver. It discusses implementation in detail, which this book does not.

This brings me to the second half of "Essential Linux Device Drivers", where specific device types are discussed. So little time is spent on each type that none are covered in enough detail to actually go off and start a driver of that type. You could be thinking that this book never claimed to enable you to write a PCI driver, for example, and that would be true. It just feels like a reduced scope with increased depth on the remainder would have made a much more useful book, rather than a bathroom reader.
9 of 9 people found the following review helpful
2.0 out of 5 stars Good attempt at a driver book, lots of errors ruin the book 29 April 2012
By Ludvik Jerabek - Published on Amazon.com
Format:Hardcover
Anyone who is looking to purchase this book is either taking a class in driver development or is new to driver development and is looking for guidance. This book is a great attempt at an all in one driver development book, however; falls flat due to errors in the text and code samples. Sadly it is obvious there was very little error checking or testing of code samples in the book. Someone who is new to such a complex subject should be able to rely on accurate code example and explanations without having to constantly be on the lookout for errors. Some of the errors found are expected of new CS students and not seasoned professionals ( eg. Performing kmalloc() without calling kfree() ) or (allocating memory to a single variable in a for loop eg. var_ptr = kmalloc() both of which exist in Example 5.1 of the book ). The author also fails to explain kernel function's arguments and only mentioned the kernel functions themselves. This makes it difficult to know what/why arguments are being passed.

Please see the author's errata page:

[...](Link removed by Amazon)

Additionally there is another errata page for the book:

[...](Link removed by Amazon)

The high number of errors take away from the readers experience with learning the subject. More time is spent reading and checking the author's Errata page to make sure they are not misinformed. This book will probably be worth 4 stars if they release a second edition with all the errors fixed. It may be worth picking up LDD3 as a supplement and probably has less errors. Additionally, the author spends a ton of time in the beginning discussing kernel threads, klists, ktrees, IRQs, softirqs, and other key kernel components and hardware specifics. These concepts would probably be better explained hands on building drivers starting with basic character drivers and progressing to more difficult drivers. Most people learn by doing and seeing first hand, there is no point in throwing a ton of "jargon" at a learner without real context. Often times the author would state after a long dissertation, "We will see this in X chapter" or "When in X chapter refer back". Personally, I don't like bouncing back and forth between pages cross referencing. Such concepts would be better explained in real use cases when writing a drivers throughout the chapters.
30 of 37 people found the following review helpful
2.0 out of 5 stars Get Linux Device Drivers from O'REILLY instead 10 Feb. 2009
By Anderson John - Published on Amazon.com
Format:Hardcover|Verified Purchase
The people who gave this book 5 starts are either friends of the author, the author himself, or guys who have been writing linux drivers for years and felt like reading what they already knew. Although the author seems to be very knowledgeable on the topic, his book is really terrible at explaining the essential kernel functions needed for writing device drivers and their respective parameters. He only mentions that they exist. To understand what the author is doing, you would have to resort to searching alternate references. Also his examples don't work. I can tell that he never tried to compiled these examples.

After reading the first few chapters, I decided to get the linux device drivers book from O'REILLY and as soon as I started reading, I could point out loads of important information that the first book failed to relay. The examples in the O'REILLY book are also by far better.
18 of 23 people found the following review helpful
5.0 out of 5 stars Best Linux device driver book yet 6 May 2008
By Anthony Lawrence - Published on Amazon.com
Format:Hardcover
I've been frustrated by many other Linux kernel and device driver books. The authors often make assumptions about the readers knowledge and gloss over areas that can be quite confusing.

To some extent, that's unavoidable: the Linux kernel is monstrous and very complex, and the hardware that drivers control can also be dark and mysterious territory.

I really appreciated this books approach. It's not that everything is explained in complete detail; that would be impossible. However, the author obviously tries very hard to give an overview, an orientation that will hopefully set your mind in the right direction, before diving into details. Throughout the book he adds "go look at this" suggestions that can help you understand whatever he's dealing with at this point.

I think Chapter 2, which is a high level fly-by of the kernel in general, is an absolute masterpiece. That starts by pulling typical kernel boot messages and explaining what they mean and what's going on in code to produce them. It then goes on to discuss kernel locks, briefly looks at procfs and memory allocation, and closes (as each chapter does) with pointers to where to look in the source for the subjects discussed.

Chapters 3 and 4 flesh out basic concepts more, and then after that the book goes into details, picking both real world and fanciful examples of hardware and giving sample device drivers. Simple devices are presented first, while later chapters get into more complicated hardware, but in each case the same general format is followed: overview of the how and why, sample driver(s), how to most easily debug, and pointers to real kernel sources.

Very well done. I have no complaints - oh, a few minor typos, maybe, but nothing serious.
3 of 3 people found the following review helpful
3.0 out of 5 stars Missing info 4 Sept. 2009
By Daniel Cardenas - Published on Amazon.com
Format:Hardcover|Verified Purchase
I tried to find docomentation about Module.symvers, linking at runtime, symbol issues, etc... No luck. At least the o'reilly book touches on these topics.
Were these reviews helpful?   Let us know
Search Customer Reviews
Only search this product's reviews

Customer Discussions

This product's forum
Discussion Replies Latest Post
No discussions yet

Ask questions, Share opinions, Gain insight
Start a new discussion
Topic:
First post:
Prompts for sign-in
 

Search Customer Discussions
Search all Amazon discussions
   


Look for similar items by category