Поддержка Waveshare SIM7600E-H 4G HAT на OpenWrt

Вопрос или проблема

Я хотел бы использовать 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.

Необходимые шаги для настройки

  1. Конфигурация загрузки:

    • В файле boot/config.txt Raspberry Pi должно быть добавлено следующее:
      enable_uart=1
      dtoverlay=disable-bt

      Эти параметры необходимы для включения правильной работы UART и отключения Bluetooth, чтобы избежать конфликтов с последовательным портом, используемым SIM7600E-H.

  2. Поддержка ядра Linux:

    • Убедитесь, что ваше ядро Linux поддерживает модуль option, который отвечает за работу с USB-Serial устройствами. Необходимо наличие опции CONFIG_USB_SERIAL_OPTION=m в конфигурации ядра. Для OpenWrt она должна быть включена, так как используется относительно новая версия ядра (5.15) в OpenWrt 23.05.
  3. Минимальная версия ядра:

    • Ядро версии 5.15 достаточно для работы с SIM7600E-H, поскольку поддержка этого устройства была добавлена еще в версии 4.20. Это означает, что у вас не должно быть проблем совместимости.
  4. Поддержка Raspberry Pi:

    • Хотя не все возможности Raspberry Pi могут быть интегрированы в основное ядро, OpenWrt 23.05.5 поддерживает все версии Raspberry Pi. Это говорит о том, что вас не должно беспокоить отсутствие специфичных для Pi утилит.
  5. Конфигурация пользовательского пространства:

    • После загрузки системы убедитесь, что модуль виден в пользовательском пространстве. Примените следующие команды для проверки:
      lsusb | grep -i Qualcomm
      ls -la /dev/ttyUSB[0-4]
    • Если устройство не отображается, вам потребуется загрузить модуль вручную и настроить его режим. Используйте команды:
      modprobe option
      echo "1e0e 9011" > /sys/bus/usb-serial/drivers/option1/new_id
  6. Инициализация 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 этот шаг, скорее всего, не будет необходим.
  7. Поддержка libqmi:

    • Для работы с QMI (Qualcomm MSM Interface) можно использовать библиотеку libqmi, которая также доступна и в OpenWrt. Версия 1.32.4, интегрированная в OpenWrt 23.05, достаточно новая и будет поддерживать необходимые функции.

Заключение

Настройка Waveshare SIM7600E-H 4G HAT на OpenWrt может показаться сложной задачей, но следуя вышеуказанным шагам, вы сможете успешно интегрировать устройство в вашу систему. Использование командной строки является мощным подходом, позволяющим получить гибкость и контроль над настройками. Обязательно следует обращать внимание на версии ядра и поддерживаемые модули для корректной работы.

Эта инструкция способствует не только успешной конфигурации, но и уверенности в том, что вы получаете максимальную отдачу от вашего 4G HAT.

Оцените материал
Добавить комментарий

Капча загружается...