Communicating with devices in Linux happens at different levels. The most basic layer of drivers is the kernel module. Among other things, these modules have unrestricted access to the operating system and, if necessary, provide access to users via interfaces such as block devices. This is where the I2C (https://learn.sparkfun.com/tutorials/i2c/all) driver offers the as /dev/i2c-1 bus (for example) that you can write to and read from. Using Rust, we can use this interface to create a driver for a sensor device that is connected to that bus. Let's see how that works.
Creating I2C device drivers
How to do it...
Device drivers can be implemented in a few steps:
- Create a binary project: cargo new i2cdevice-drivers
- Open the...