This is an old revision of the document!
On the kernel level, I2C communication is handled by the i2c-dev kernel driver.
On the lowest level, the bus is seen as a file and using a file descriptor one can
read from it or write to it. The shell interface is a set of compiled programs that
wrap this functionality for specific uses at a higher level. The intended use is
interactive debugging to see if something works or not. For programmatic use it's
better to take a look at the C API for C/C++ and the
smbus2 library for Python.
These programs are part of the i2c-tools package that usually comes preinstalled
in most Linux distributions.
1
2
3
4
5