linux-native-hardware

Meshtasticd Terminal Dark Meshtasticd Terminal Light

Эта страница описывает настройку Meshtastic на устройствах с нативным Linux, используя portduino для запуска прошивки Meshtastic под Linux.

Предварительные требования и совместимость оборудования

Перед началом настройки убедитесь, что устройство соответствует следующим требованиям:

Тестированные устройства

SPI

USB (CH341)

Совместимость оборудования

:::caution Warning

См.: The Meshtastic CRC Problem :::

Системные требования

Установка

Установка Meshtasticd

Интерфейсы оборудования

USB

Поддержка USB через CH341 была добавлена в Meshtastic 2.5.18.

Обратите внимание, что для распознавания Linux нескольких устройств CH341-USB на борту должна быть EEPROM, прошитая с уникальным серийным номером. Устройства вроде Pine64 Pinedio v1 не включают это.

SPI (Raspberry Pi)

Включить поддержку SPI для LoRa-радио

sudo raspi-config nonint set_config_var dtparam=spi on /boot/firmware/config.txt # Enable SPI

# Ensure dtoverlay=spi0-0cs is set in /boot/firmware/config.txt without altering dtoverlay=vc4-kms-v3d or dtparam=uart0
sudo sed -i -e '/^\s*#\?\s*dtoverlay\s*=\s*vc4-kms-v3d/! s/^\s*#\?\s*(dtoverlay|dtparam\s*=\s*uart0)\s*=.*/dtoverlay=spi0-0cs/' /boot/firmware/config.txt

# Insert dtoverlay=spi0-0cs after dtparam=spi=on if not already present
if ! sudo grep -q '^\s*dtoverlay=spi0-0cs' /boot/firmware/config.txt; then
    sudo sed -i '/^\s*dtparam=spi=on/a dtoverlay=spi0-0cs' /boot/firmware/config.txt
fi
dtparam=spi=on
dtoverlay=spi0-0cs

I²C (Raspberry Pi)

Включить поддержку I²C

Включено с помощью:

sudo raspi-config nonint set_config_var dtparam=i2c_arm on /boot/firmware/config.txt # Enable i2c_arm

Или вручную включено в /boot/firmware/config.txt:

dtparam=i2c_arm=on

UART (Raspberry Pi)

Включить поддержку UART для GPS

sudo raspi-config nonint do_serial_hw 0 # Enable Serial Port (enable_uart=1)
sudo raspi-config nonint do_serial_cons 1 # Disable Serial Console
# Needed for all Pi device.
enable_uart=1

# Needed for the Pi 5 only.
dtoverlay=uart0
sudo raspi-config nonint do_serial_cons 1 # Disable Serial Console

Настройка

Настройка Meshtasticd

Чтобы включить LoRa-радио, подключенное к вашему устройству, сначала найдите его конфигурацию в пресетах, затем скопируйте в config.d.

# First, locate your radio hardware
ls /etc/meshtasticd/available.d
# Ex: display-waveshare-2.8.yaml  lora-MeshAdv-900M30S.yaml  lora-meshstick-1262.yaml

# Then, copy desired config to `config.d`
# Example:
cp /etc/meshtasticd/available.d/lora-MeshAdv-900M30S.yaml /etc/meshtasticd/config.d/

:::info Файл config.yaml чувствителен к пробелам, поэтому убедитесь, что отступы и пробелы правильные. :::

Веб-сервер

meshtasticd имеет поддержку веб-сервера начиная с релиза 2.3.0.

Чтобы включить это:

Webserver:
  Port: 443 # Port for Webserver & Webservices
  RootPath: /usr/share/meshtasticd/web # Root Dir of WebServer

Поддержка Bluetooth

Bluetooth в настоящее время не поддерживается и не работает на устройствах с нативным Linux. Это может измениться в будущем.

Постоянное хранение

Расширенная настройка и устранение неисправностей

Включение службы systemd

Чтобы настроить устройство для запуска и остановки meshtasticd как службы с помощью systemctl, вы можете настроить единицу службы, используя инструкции ниже.

Создать службу systemd (только для ручных установок)

Служба systemd meshtasticd автоматически устанавливается при использовании официальных пакетов Meshtastic. Эти инструкции нужны только при ручной установке.

Создайте файл единицы службы:

Создайте новый файл в директории /etc/systemd/system/ с именем вроде meshtasticd.service.

sudo nano /etc/systemd/system/meshtasticd.service

Добавьте следующее содержимое в файл:

[Unit]
Description=Meshtastic Native Daemon
After=network-online.target
StartLimitInterval=200
StartLimitBurst=5

[Service]
AmbientCapabilities=CAP_NET_BIND_SERVICE
User=root
Group=root
Type=simple
ExecStart=/usr/bin/meshtasticd
Restart=always
RestartSec=3

[Install]
WantedBy=multi-user.target

Перезагрузите systemd, чтобы распознать новую службу:

sudo systemctl daemon-reload

Включите службу для запуска при загрузке:

sudo systemctl enable meshtasticd

Запуск и остановка службы

Запустить службу:

sudo systemctl start meshtasticd

Проверить статус службы:

sudo systemctl status meshtasticd

Это даст подробный обзор статуса службы и возможных ошибок.

Остановить службу:

sudo systemctl stop meshtasticd

Следуя этим шагам, вы настроите службу systemd для meshtasticd, которая будет автоматически запускаться при загрузке и перезапускаться в случае сбоя. Вы можете управлять ею с помощью стандартных команд systemctl (start, stop, restart, status и т.д.).

Просмотр логов Meshtastic

Чтобы просмотреть вывод логов службы meshtasticd, используйте следующую команду для чтения их из системного журнала.

journalctl -u meshtasticd -b

Настройка Avahi

Это позволит клиенту Android автоматически обнаруживать ваше устройство с нативным Linux.

sudo apt install avahi-daemon

Создать файл службы:

sudo nano /etc/avahi/services/meshtastic.service

И вставить следующее:

<?xml version="1.0" standalone="no"?><!--*-nxml-*-->
<!DOCTYPE service-group SYSTEM "avahi-service.dtd">
<service-group>
    <name>Meshtastic</name>
    <service protocol="ipv4">
        <type>_meshtastic._tcp</type>
        <port>4403</port>
    </service>
</service-group>

Затем сохранить и выйти.

Настройка CLI

Взаимодействие с Meshtastic можно проводить через командную строку:

meshtastic --host localhost ...

См.: