Meshtastic on Linux-Native Devices
This page outlines the setup of Meshtastic on Linux-native devices, utilizing portduino to run the Meshtastic firmware under Linux.
Prerequisites and Hardware Compatibility
Before proceeding with the setup, ensure the device meets the following requirements:
Tested Devices
- Raspberry Pi zero, zero 2 , 3,4, Pi 400, and Pi 5.1
- Ubuntu 22.04 X86_64 with a CH341-SX1262 DIY dongle.2
- Debian GNU/Linux trixie/sid riscv64 on Cvitek CV180X ASIC, C906 (Milk-V Duo), on the SPI bus.
Hardware Compatibility
Warning
UART HATs and SX1302/SX1303 chip-based HATs are not supported. Only hats that use a SPI radio can work with Meshtastic.
- Tested radios include the Waveshare SX126X (SPI version), Adafruit RFM9x, and Elecrow Lora RFM95 IOT.
- Support for I2C displays, SPI displays, and keyboard input has been confirmed. It is necessary to be aware of potential pin conflicts when stacking hats.
System Requirements
- The Meshtastic binary,
meshtasticd
, necessitates root access or a user with permissions to access GPIO, SPI, and other interfaces. - A Linux distribution compatible with the Meshtastic installation package, which is compiled for Debian Bookworm and not compatible with Bullseye.
Installation
Installing Meshtasticd
- Necessary system libraries should be installed before building or installing Meshtasticd.
sudo apt install libgpiod-dev libyaml-cpp-dev libbluetooth-dev libusb-1.0-0-dev libi2c-dev
- And optionally for web server support
sudo apt install openssl libssl-dev libulfius-dev liborcania-dev
- The .deb Package is available as part of the release, installing the binary, a systemd service, and a config file. It is compiled for Debian Bookworm and incompatible with Bullseye.
wget https://github.com/meshtastic/firmware/releases/download/v{version}/meshtasticd_{version}_arm64.deb
sudo apt install ./meshtasticd_{version}arm64.deb