I'm learning about Linux kernel driver development for work, but I'm struggling to find a good resource that is relevant to recent kernels.

I have read Linux Device Drivers 3rd edition, but that is for kernel 2.6 and the kernel has changed a lot since then - none of the examples will even compile on more recent kernels. Resources for the Rapsberry pi don't really cover kernel-space, and the tutorials I've found don't seem to follow any of the advice that the Linux Device Drivers book gives about careful handling of memory.

Can anyone point me to a more recent resource that covers the topics of hardware interface and proper memory management for kernel drivers?


closed as off-topic by Jeff Schaller, thrig, Stephen Rauch, Scott, JdeBP Sep 8 '17 at 4:30

This question appears to be off-topic. The users who voted to close gave this specific reason:

  • "Requests for learning materials (tutorials, how-tos etc.) are off topic. The only exception is questions about where to find official documentation (e.g. POSIX specifications). See the Help Center and our Community Meta for more information." – Jeff Schaller, thrig, Stephen Rauch, Scott, JdeBP
If this question can be reworded to fit the rules in the help center, please edit the question.

  • The question itself exposes exactly why this WWW site does not accept this kind of question. – JdeBP Sep 8 '17 at 4:32

see Linux Kernel: Good beginners' tutorial

This question has probably already been answered, but you can start with a couple of websites, like https://kernelnewbies.org/, which might have more info.

Browsing the kernel Documentation directory is immensely helpful. see https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/tree/Documentation

Starting with the skeleton module is good, and having a look through some of the more maintained drivers, but I don't know what type you're interested in.

I would definitely take one of the online courses (or buy a book) about how to use the GIT version control system if you haven't already.

Not the answer you're looking for? Browse other questions tagged or ask your own question.