📌 Overview This repository contains hands-on implementations of Linux Kernel Modules (LKMs) and Linux Device Drivers, covering fundamental to intermediate driver development concepts in Embedded Linux. The project focuses on understanding the Linux kernel architecture, device model, device tree, synchronization mechanisms, and peripheral subsystems such as GPIO and pinctrl.
🚀 Features Linux Kernel Module (LKM) development and module lifecycle management Character Device Driver implementation Platform Bus, Platform Device, and Platform Driver development Linux Device Tree creation and integration Device Tree node parsing from kernel drivers Device instantiation using Device Tree Device Tree overlays and overlay testing using U-Boot Linux Device Model and Sysfs interface GPIO subsystem driver development Pinctrl subsystem integration Kernel synchronization using Mutexes and Spinlocks Makefile-based kernel module compilation
🛠️ Technologies Used Language: C Operating System: Embedded Linux Kernel Programming: Linux Kernel APIs Tools: GCC, Make, GDB, Git Platforms: ARM-based Embedded Systems (BeagleBone Black)
📌 Skills Demonstrated Embedded Linux • Linux Kernel Programming • Device Drivers • Character Drivers • Platform Drivers • Device Tree • GPIO • Pinctrl • Sysfs • Kernel Synchronization • C Programming
👨💻 Author Kunal Sanwlecha Embedded Systems | Linux Driver Development | VLSI Enthusiast
GitHub: kunalsanwlecha/linux_device_driver