Learning Embedded Linux Driver Development

2023-12-31

There are two kinds of developers that become embedded/driver developers. One set is from a CS / Application developer background that drop down to low-level development. The rest is EE background that turn into developers. Of course both courses have their pros and cons. But I'd argue comming from a Hardware background has it's perks..

Regardless, here's a guide to jumping into Linux driver development from the HW background perspective. Its a collection of resources to guide your learning.

The first step is to tackle general Linux user administration.

  • The Linux Command Line is freely available to download. I think getting familiar with the command line is the first major hurdle in learning Linux. This book helps with that and some BASH scripting too. (I've been putting off learning scripting for the longest time!)

  • How Linux Works is an amazing succinct guide in general Linux admin/usage.

  • Mastering Embedded Linux Programming In contrast to what the title implies (misleading) this book deals with setting up a linux system for an embedded target and discusses the workflow for cross-compilation. And a great one at that! Though this book discusses Yocto I recommend Buildroot for beginners.

  • Linux From Scratch (LFS) is a free guide on how to compile and build a working linux system step-by-step from scratch! Grab that old laptop/machine and follow along! This step is optional but entirely worth it!

Once you have this under your belt you can start development activities.

At this stage you need a good relevant development board to follow along. I recommend the Milk-V Duo for its breadboard friendly. It supports Buildroot and the documentation is highly embedded Linux focussed.