Говорила мне мама, чтобы я читал документацию перед горожением велосипедов костылями, а я её не слушал. В итоге узнал, что умные люди давно уже всё придумали и сделали.
Загрузчик на Raspberry Pi не так давно (полгода назад, ага) научился грузить файлы dtb, что сильно упростило подключение периферийных устройств к плате.
Я уже писал о подключении часов реального времени. Для того, чтобы устройства появилось в системе, требовалось самому грузить модуль, прописывать команды и надеяться, что всё это не отвалится при следующей перезагрузке. Теперь всем этим занимается ядро самостоятельно, достаточно только немного подправить файл "/boot/config.txt".
Например, для подключения RTC PCF2127AT на платах от Sainsmart достаточно прописать:
dtoverlay=i2c-rtc,pcf2127
После этого надо перезагрузить плату и всё.
Для RTC DS1307, которые очень часто используются во всяких самодельных устройствах, строка выглядит так:
dtoverlay=i2c-rtc,ds1307
В логе загрузке появятся такие строки:
[ 4.591801] rtc-ds1307 1-0068: rtc core: registered ds1307 as rtc0 [ 4.601910] rtc-ds1307 1-0068: 56 bytes nvram
Подобных строк в конфиг можно прописать несколько. А более подробное описание настроек есть в README на GitHub.