NetworkManager: отбираем контроль над интерфесами

Чтобы заставить NetworkManager оставить в покое ваш любимый интерфейс, нужно в файле /etc/NetworkManager/NetworkManager.conf добавить раздел [keyfile] со строкой unmanaged-devices, в которой перечислить мак-адреса освобожденный интерфейсов. Необходимо удостовериться, что плагин keyfile включен в список.

[main]
plugins=ifupdown,keyfile,ofono
dns=dnsmasq

[ifupdown]
managed=false

[keyfile]
unmanaged-devices=mac:c4:6e:1f:04:54:cc;mac:60:e3:27:02:55:34;mac:fc:75:16:85:93:94

NRF24 и ESP8266

После долгих мучений наконец-то заставил NodeMCU (ESP8266) работать с nRF24L01p. В этом деле мне здорово помог логический анализатор. Сначала я снял обмен данными с ардуины, где есть отлаженная библиотека и всё работает с полпинка. Затем привел свой код в аналогичный вид, но без какого-либо результата. При снифе моего обмена оказалось, что модуль SPI в NodeMCU поднимает Chip Select после каждого байта! Естественно, загрузка адресов и полезных данных в nRF24 нифига не работала. Сильно запутало то, что чтение и запись одиночных регистров при этом происходили правильно — в одной транзакции я отправлял адрес регистра, в следующей — успешно получал содержимое. Чудеса! Решилось ручным управлением Chip Select’ом с отдельного GPIO. Ну и вишенкой на торте стали перепутанные провода CE и CSN на одной из тестовых плат.

Теперь наконец можно сделать перекладыватель из nRF в MQTT и перенести батарейные датчики с ESP8266 на STM8L+nRF24. Предварительный расчет показал, что батарейки CR2032 должно хватить на 5 лет при отправке данных каждую минуту. Правда, это без каких либо датчиков.