В качестве примера я нашел хороший код для модуля символьного устройства: https://github.com/euspectre/kedr/blob/master/sources/examples/sample_target/cfake.c
Я не модифицировал код и тестировал его. Я получил два устройства (/dev/cfake0 и /dev/cfake1), но хотел бы кое-что понять.
Экспортируются два устройства, но только одна функция чтения. Как указать, какую функцию чтения использовать для каждого устройства (если реализованы две функции чтения)?
В конце концов, я хотел бы иметь два символьных устройства (одно для связи I2C, другое для SPI) на одном модуле, модуль и пользовательское пространство нуждаются в связи, поэтому мне нужно экспортировать их оба.