суббота, 12 сентября 2015 г.

RTC и многое другое на Raspberry Pi.



Говорила мне мама, чтобы я читал документацию перед горожением велосипедов костылями, а я её не слушал. В итоге узнал, что умные люди давно уже всё придумали и сделали.
Загрузчик на 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.