I understand the 3.2 kernel is mostly an evolutionary step, but I'd like to play around with some simple device drivers for a project I'm working on. Is the info in Linux Device Drivers 3rd Ed (Corbet, Rubini and Kroah-Hartman, O'Reilly) still germane or are there major differences between how 2.6 and 3.2 do things? What do people think of this book in general?
Asked
Active
Viewed 3,143 times
1 Answers
4
I like LDD3. The teaching style is outstanding. I see the most references to that text in SO, LWN etc.
I tried just reading it, that had limited value. It was better to get the examples built and running, play some e.g. with scull, then study the text hard to see how the code was really working.
But, to do that with modern kernels, you need updated code. I found martinezjavier code built OK with 3.1 kernel (I deleted tty from Makefile, and added simple_open() definition) then life was great. Also I found some nice work from cs.fsu, including online cross-reference.
Cooperstein text also exists, and has exercise solutions with multiple kernel versions, but I haven't used this text.

Joe Kul
- 2,454
- 16
- 16
-
All of those links were very useful. The updated LDD3 code from Github is going to be an excellent resource. I'd written drivers for 2.6 and was pleased to see that things were not too different. I know have a stub driver up and running and can start to flesh it out. My technique is the same as your: use the source, Luke. – David G Sep 11 '13 at 14:24
-
1In case if someone still looking for newer, I have just built this https://github.com/pkumarg/scull LDD3 source for newer kernels. – Pushpendra May 06 '20 at 15:23