Вопрос или проблема
Я хотел бы использовать Waveshare SIM7600E-H 4G HAT на OpenWrt (в идеале) или, по крайней мере, на Raspbian. Я хотел бы понять, что нужно сделать с командной строки (лучше, чем использовать luci или любую другую графическую конфигурацию).
Вот что я нашел из различных источников для OpenWrt, Raspbian Raspbian – NDIS диал-ап и автозапуск, Raspbian – RNDIS диал-ап
-
boot/config.txt
должен содержать хотя быenable_uart=1
. Что-то еще? Инструкции для Raspbian также упоминаютdtoverlay=disable-bt
. -
Ядро Linux должно поддерживать модуль option, через опцию конфигурации ядра
CONFIG_USB_SERIAL_OPTION=m
(или=y
встроенный модуль). Я не уверен, включена ли это для OpenWrt, но должно быть для ядра Raspbian. -
Минимальная версия ядра. Я предполагаю, что ядро 5.15, которое находится в OpenWrt 23.05, должно быть достаточно новым, модуль очень старый, и поддержка SIM7600 была добавлена в ядро 4.20 (поддержка MBIM) и в 5.2 (режим RNDIS).
-
Поддержка Raspberry Pi не (еще) основного кода ядра. Я вижу/boot/config.txt
, упомянутый в вики OpenWrt Raspberry Pi, что должно означать, что, надеюсь, все, что ядро необходимо для Raspberry Pi и не входит в основное ядро, было патчено в ядре OpenWrt.
https://openwrt.org/toh/start утверждает, что OpenWrt 23.05.5 поддерживает все версии RPI, просто самая новая Raspberry Pi 5 требует снимка (будущей версии). -
Конфигурация пользовательского пространства – модуль должен быть виден
lsusb |grep -i Qualcomm
ls -la /dev/ttyUSB[0-4]
Если нет, необходимо вручную загрузить модуль и даже настроить режим
modprobe option
echo "1e0e 9011" > /sys/bus/usb-serial/drivers/generic/new_id
# или
echo "1e0e 9011" > /sys/bus/usb-serial/drivers/option1/new_id
В архиве https://files.waveshare.com/upload/2/29/SIM7600X-4G-HAT-Demo.7z (упомянутом в Raspbian) есть файл SIM7600X-4G-HAT-Demo/Raspberry/c/sim7600_4G_hat_init
, который устанавливает некоторые значения GPIO:
echo "4" > /sys/class/gpio/export
sleep 0.1
echo "out" > /sys/class/gpio/gpio4/direction
echo "0" > /sys/class/gpio/gpio4/value
echo "6" > /sys/class/gpio/export
sleep 0.1
echo "out" > /sys/class/gpio/gpio6/direction
echo "0" > /sys/class/gpio/gpio6/value
Я предполагаю, что этот пример не нужен для фактического использования Waveshare.
- libqmi, конечно, поддерживается для обеих дистрибутивов, OpenWrt 23.05 имеет 1.32.4 (довольно новая версия).
Ответ или решение
Поддержка Waveshare SIM7600E-H 4G HAT на OpenWrt
Использование модуля Waveshare SIM7600E-H 4G HAT в окружении OpenWrt — это интересная задача для пользователей, стремящихся создать портативный 4G маршрутизатор. Данная инструкция представляет собой детальный план по настройке устройства через командную строку, что позволяет избежать использования графических интерфейсов, таких как LuCI.
Необходимые шаги для настройки
-
Конфигурация загрузки:
- В файле
boot/config.txt
Raspberry Pi должно быть добавлено следующее:enable_uart=1 dtoverlay=disable-bt
Эти параметры необходимы для включения правильной работы UART и отключения Bluetooth, чтобы избежать конфликтов с последовательным портом, используемым SIM7600E-H.
- В файле
-
Поддержка ядра Linux:
- Убедитесь, что ваше ядро Linux поддерживает модуль
option
, который отвечает за работу с USB-Serial устройствами. Необходимо наличие опцииCONFIG_USB_SERIAL_OPTION=m
в конфигурации ядра. Для OpenWrt она должна быть включена, так как используется относительно новая версия ядра (5.15) в OpenWrt 23.05.
- Убедитесь, что ваше ядро Linux поддерживает модуль
-
Минимальная версия ядра:
- Ядро версии 5.15 достаточно для работы с SIM7600E-H, поскольку поддержка этого устройства была добавлена еще в версии 4.20. Это означает, что у вас не должно быть проблем совместимости.
-
Поддержка Raspberry Pi:
- Хотя не все возможности Raspberry Pi могут быть интегрированы в основное ядро, OpenWrt 23.05.5 поддерживает все версии Raspberry Pi. Это говорит о том, что вас не должно беспокоить отсутствие специфичных для Pi утилит.
-
Конфигурация пользовательского пространства:
- После загрузки системы убедитесь, что модуль виден в пользовательском пространстве. Примените следующие команды для проверки:
lsusb | grep -i Qualcomm ls -la /dev/ttyUSB[0-4]
- Если устройство не отображается, вам потребуется загрузить модуль вручную и настроить его режим. Используйте команды:
modprobe option echo "1e0e 9011" > /sys/bus/usb-serial/drivers/option1/new_id
- После загрузки системы убедитесь, что модуль виден в пользовательском пространстве. Примените следующие команды для проверки:
-
Инициализация GPIO (при необходимости):
- В зависимости от вашей конфигурации, вам может потребоваться настроить некоторые GPIO значения. Пример инициализации может выглядеть так:
echo "4" > /sys/class/gpio/export sleep 0.1 echo "out" > /sys/class/gpio/gpio4/direction echo "0" > /sys/class/gpio/gpio4/value echo "6" > /sys/class/gpio/export sleep 0.1 echo "out" > /sys/class/gpio/gpio6/direction echo "0" > /sys/class/gpio/gpio6/value
- Однако для простого использования Waveshare этот шаг, скорее всего, не будет необходим.
- В зависимости от вашей конфигурации, вам может потребоваться настроить некоторые GPIO значения. Пример инициализации может выглядеть так:
-
Поддержка libqmi:
- Для работы с QMI (Qualcomm MSM Interface) можно использовать библиотеку
libqmi
, которая также доступна и в OpenWrt. Версия 1.32.4, интегрированная в OpenWrt 23.05, достаточно новая и будет поддерживать необходимые функции.
- Для работы с QMI (Qualcomm MSM Interface) можно использовать библиотеку
Заключение
Настройка Waveshare SIM7600E-H 4G HAT на OpenWrt может показаться сложной задачей, но следуя вышеуказанным шагам, вы сможете успешно интегрировать устройство в вашу систему. Использование командной строки является мощным подходом, позволяющим получить гибкость и контроль над настройками. Обязательно следует обращать внимание на версии ядра и поддерживаемые модули для корректной работы.
Эта инструкция способствует не только успешной конфигурации, но и уверенности в том, что вы получаете максимальную отдачу от вашего 4G HAT.