Giter Site home page Giter Site logo

xuniuer / linux_driver_tutorial Goto Github PK

View Code? Open in Web Editor NEW

This project forked from johannes4linux/linux_driver_tutorial

0.0 0.0 0.0 87 KB

A Tutorial how to get started with Linux Kernel Modules and Linux Drivers.

License: The Unlicense

C 92.37% Makefile 7.63%

linux_driver_tutorial's Introduction

Linux Driver Tutorial

Here you can find examples for simple Linux Kernel Modules and Linux Drivers.

Preparation

I used a Raspberry Pi 3 to develop and test my modules and drivers. To compile them, you need to install the Kernel headers on your Pi. On Raspbian you can do this with the following command:

sudo apt update
sudo apt install raspberrypi-kernel-headers

Raspberry Pi OS is only installs the latest kernel headers. So, make sure, you are running the latest kernel. You can do this by running:

sudo apt upgrade

You also need the build utils (make, gcc, ...) but they come preinstalled on Raspbian.

Content

In this repo you can find examples for:

  1. Simple Kernel Module
  2. Device Numbers and Device Files
  3. Create device file in driver and callbacks
  4. GPIO Driver
  5. Text LCD Driver
  6. PWM Module
  7. Temperature Sensor (I2C)
  8. Timer in Linux Kernel Modules
  9. High Resolution Timer in Linux Kernel Modules
  10. Accessing SPI with a Linux Kernel Module (BMP280 sensor again)
  11. Using a GPIO Interrupt in a Linux Kernel Module
  12. Using Parameters in a Linux Kernel Module
  13. IOCTL in a Linux Kernel Module
  14. Threads in a Linux Kernel Module
  15. Sending a signal from a Linux Kernel Module to an userspace application
  16. The poll callback
  17. Waitqueues in a Linux Kernel Module
  18. Create procfs entries from a Linux Kernel Module
  19. Create sysfs entries from a Linux Kernel Module
  20. Parse the device tree from a Linux Kernel Module to get the deivce properties of a specific device
  21. Device Tree GPIO Driver
  22. Device Tree Driver for I2C Device
  23. Dynamical memory management in a Linux Kernel module
  24. Serial (UART) Driver
  25. Industrial IO compatible driver for an ATMEGA I2C ADC
  26. Device Tree SPI Driver (IIO compatible driver for Atmega SPI ADC)
  27. Misc Device

More Information

For more information about my Linux Driver examples check out my videos and my playlist

Support me

If you want to support me, you can buy me a coffee buymeacoffee.com/johannes4linux.

linux_driver_tutorial's People

Contributors

johannes4linux avatar neonstrawberry avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.