Интеграция LTE-модулей Neoway с ОС Linux

Интеграция LTE-модулей Neoway с ОС Linux

12 Май, 2021

При организации взаимодействия модулей LTE с системой, работающей под управлением ОС Linux, можно выделить две отдельные задачи:

1. Обеспечение работы модуля LTE как USB-модема.

2. Обеспечение взаимодействия между модулем и системой по последовательным интерфейсам.

Рассмотрим эти задачи подробнее.

 

Работа модуля LTE как USB-модема

Как правило, при подключении USB-модема в системе появляется новый сетевой интерфейс, взаимодействие с которым осуществляется так же, как с обычным интерфейсом Ethernet. Это достигается за счет использования стандартных протоколов, получивших название Ethernet-over-USB. Чтобы LTE-модуль работал как USB-модем, его предварительно нужно настроить с помощью АТ-команд через последовательный порт. Эти вопросы подробно рассматривались в статье «Использование LTE-модулей формата Mini PCIe в качестве USB-модемов», поэтому здесь повторяться не будем. LTE-модули Neoway сохраняют настройки в энергонезависимой памяти, поэтому достаточно задать эти настройки только один раз.

Конечно, всё это относится не только к модулям в формате карточек Mini PCIe, но и другим встраиваемым LTE-модулям Neoway.

 

Взаимодействие между LTE-модулем и системой Linux по последовательным интерфейсам

При подключении LTE-модуля по USB в системе должны появиться несколько последовательных интерфейсов. Эти интерфейсы предназначаются для управления модулем с помощью АТ-команд, получения сообщений NMEA (при наличии в LTE-модуле приемника Глонасс/GPS), диагностики. Наличие данных интерфейсов не является обязательным для работы модуля в качестве USB-модема, но обеспечивает дополнительные возможности при интеграции с системой.

 

Если последовательные интерфейсы после подключения модуля не появляются, то существуют следующие варианты решения данной задачи:

 

1. Использование драйвера ‘usbserial’ с нужными нам VID и PID. Например, в случае Neoway N58, режим RNDIS:

 

sudo modprobe usbserial vendor=0x2949 product=0x7401

После этого в системе должны появиться последовательные порты ttyUSB, проверить результат можно с помощью команды:

ls /dev/ttyUSB*

 

 

 

 

 

 

 

 

2. Использование драйвера ‘option’. В случае Neoway N58 и режима RNDIS:

sudo modprobe option

sudo chmod ugo+w /sys/bus/usb-serial/drivers/option1/new_id

sudo echo "2949 7401" > /sys/bus/usb-serial/drivers/option1/new_id

 

После этого в системе должны появиться последовательные порты ttyUSB, относящиеся к LTE-модулю.

 

 

 

 

 

 

 

 

 

 

В данных примерах использовался идентификатор PID модуля Neoway N58 в режиме RNDIS – 0x7401, некоторые другие идентификаторы LTE-модулей приведены в таблице 1.

 

Таблица 1. Идентификаторы PID LTE-модулей Neoway, VID = 0x2949

 

LTE-модуль Neoway N58, N58 PCIE N720, N720 PCIE
PID, RNDIS mode 0x7401 0x8241
PID, ECM mode 0x7402 0x8242

 

 

Если у модуля был изменен режим RNDIS/ECM, то после перезагрузки USB-устройство будет иметь новый идентификатор PID.

 

Если после приведенных выше команд интерфейсы появились в системе, то остается только добавить нужные команды в автозагрузку. Если нет, то потребуется провести дополнительную диагностику.

 

При диагностике могут оказаться полезными следующие команды:

 

а) убедиться, что в системе появилось USB-устройство с VID = 0x2949:

lsusb | grep 2949:

или

dmesg | grep idVendor=2949

 

б) вывести информацию о драйвере (модуле ядра):

modinfo usbserial

modinfo option

в) проверить, загружен ли модуль ядра:

sudo lsmod | grep usbserial

sudo lsmod | grep option

 


Ваши вопросы вы можете задать автору статьи Андрею Анисимову, email avan@efo.ru 
Ваш заказ
Наверх