Здравствуйте.
Как программно в новой ревизии понять установлен ли физически gsm модуль?
В предыдущих ревизиях можно было посмотреть в переменную среды WB_OVERLAYS и увидеть wb6-nogsm или wb6-gsm-sim800 или wb6-gsm-sim5300e
в новой же версии там всегда wb6-nogsm
Добрый день.
Программно - только если “включить” модем (добавить штатным способом в /etc/wb-hardware.conf) и отправить модему “AT” например.
Модем теперь модулем. А зачем возникает такая потребность?
необходимость - понять есть ли он физически )
используется 100% свой софт и раньше анализировалась переменная и если gsm нет, то и не пытались ничего делать, а если есть - то долбили с переинициализацией, пока порты не появятся и не будут отвечать
сейчас же сюрприз-сюрприз. стало хорошо, можно модуль доставить, или убрать, но плохо что непонятно есть ли он…
Если модем описан в wb-hardware.conf, то в device-tree запись о нём тоже появится. Если вы заказываете контроллер сразу с модемом, то мы планируем настраивать это у тебя перед отгрузкой.
Смотреть переменную WB_OVERLAYS - это неправильно, это внутренняя деталь реализации, которую мы ещё много раз поменяем.
Правильно - смотреть на ноду wirenboard в device tree. Вот так напрмер:
cat /proc/device-tree/wirenboard/gsm/model
поэтому и вопрос, если изначально было устройство без модема, потом его доставили
при этом всё что wb-* из сервисов отключено
инициализировать модуль wb67-wbc wbc-3g я могу
вопрос в том, физическое присутствие или отсутствие платы модема вносит ли изменения в ветку /proc/device-tree/wirenboard/gsm?
так же покурив последние исходники, пришёл к выводу, что относительно бортовых gpio надо полагаться исключительно на /proc/device-tree/wirenboard/gpios и /proc/device-tree/wirenboard/analog-inputs
т.к. всё что делает hwmanager при конфигурировании файлов - основывается на данных оттуда?
нет. wb-hwcobnf-manager при старте читает wb-hardware.conf, добавляет нужный оверлей в систему. Этот оверлей включает UART к модему и добавляет записи в /wirenboard/gsm.
В контроллерах предыдущих ревизий соответствующий оверлей не мог поменять пользователь, поэтому он применялся загрузчиком до загрузки линукса. Теперь применяется во время загрузки линукса.
нет. Конкретно wb-hwconf-manager смотрит сейчас на общую ревизию платы, это можно увидеть в debian/postinst в репозитории wb-hwconf-manager. Мы планируем перенести описание модулей и слотов в device tree, но пока не придумали как.
На gpios и analog-inupts можно полагаться при работе с дискретными входами и выходами и аналоговыми входами. Наши сервисы wb-mqtt-gpio и wb-mqtt-adc так и делают, готового конфига у них сейчас нет.
Конкретно сервис wb-hwconf-manager является системным и обязательным, потому что его обязанность - говорить ядру про аппаратную конфигурацию. Я очень рекомендую его оставить и не трогать: он выполняется только при старте системы, ресурсов не ест, с другими сервисами не взаимодействует, зависимостей от них не имеет.