mirror of
https://github.com/meshtastic/meshtastic.git
synced 2024-12-25 05:34:11 -08:00
initial draft linux-native-hardware
This commit is contained in:
parent
f8c4943477
commit
fb1381ade0
|
@ -0,0 +1,117 @@
|
|||
---
|
||||
id: linux-native-hardware
|
||||
title: Meshtastic on Linux-Native Devices
|
||||
sidebar_label: Linux Native Devices
|
||||
sidebar_position: 11
|
||||
---
|
||||
|
||||
This guide 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
|
||||
- Ubuntu 22.04 X86_64 with a CH341-SX1262 DIY dongle
|
||||
- Debian GNU/Linux trixie/sid riscv64 on Cvitek CV180X ASIC, C906 (Milk-V Duo), on the SPI bus
|
||||
|
||||
### Hardware Compatibility
|
||||
- Tested radios include Waveshare SX126X, 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.
|
||||
- UART HATs and SX1302/SX1303 chip-based HATs are not supported.
|
||||
|
||||
### 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 Meshtastic.
|
||||
|
||||
```shell
|
||||
sudo apt install libgpiod-dev libyaml-cpp-dev
|
||||
```
|
||||
- And optionally for web server support
|
||||
```shell
|
||||
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.
|
||||
```shell
|
||||
sudo apt install ./meshtasticd_{version}arm64.deb
|
||||
```
|
||||
|
||||
## Configuration
|
||||
|
||||
### Hardware Interfaces
|
||||
|
||||
For devices requiring SPI or I2C:
|
||||
|
||||
- SPI support can be enabled in `/boot/config.txt` or `/boot/firmware/config.txt`:
|
||||
|
||||
```plaintext
|
||||
dtparam=spi=on
|
||||
dtoverlay=spi0-0cs
|
||||
```
|
||||
|
||||
- I2C support is enabled with:
|
||||
|
||||
```plaintext
|
||||
dtparam=i2c_arm=on
|
||||
```
|
||||
|
||||
### Meshtasticd Configuration
|
||||
|
||||
- The meshtasticd configuration is at `/etc/meshtasticd/config.yaml` by default. If a `config.yaml` is found in the current directory, that takes precedence. And a config file specified with the `-c/--config` option has the highest precedence.
|
||||
|
||||
### Web Server
|
||||
|
||||
- Meshtasticd has web server support starting with release 2.3.0 To enable this:
|
||||
|
||||
```plaintext
|
||||
Webserver:
|
||||
Port: 443 # Port for Webserver & Webservices
|
||||
RootPath: /usr/share/doc/meshtasticd/web # Root Dir of WebServer
|
||||
```
|
||||
|
||||
### GPS Support
|
||||
|
||||
- Enabling UART for GPS hats on Pi5 requires modifications in `/boot/firmware/config.txt`:
|
||||
|
||||
```plaintext
|
||||
enable_uart=1
|
||||
dtoverlay=uart0
|
||||
```
|
||||
|
||||
The correct port for UART GPS after a reboot is `/dev/ttyAMA0`.
|
||||
|
||||
### Persistence
|
||||
|
||||
- The persistent .proto db files of the portduino version of meshtasticd are stored under: `/root/.portduino/default/prefs/`.
|
||||
|
||||
### Advanced Setup and Troubleshooting
|
||||
|
||||
- Installation of drivers for CH341 is required for Ubuntu 22.04 and other systems for SPI/I2C/GPIO support.
|
||||
|
||||
```shell
|
||||
git clone https://github.com/frank-zago/ch341-i2c-spi-gpio.git
|
||||
cd ch341-i2c-spi-gpio
|
||||
make
|
||||
sudo insmod ch341-core.ko
|
||||
sudo insmod gpio-ch341.ko
|
||||
sudo insmod i2c-ch341.ko
|
||||
sudo insmod spi-ch341.ko
|
||||
```
|
||||
|
||||
- Devices with kernels older than 5.16 may need to blacklist ch341, while kernels 6.0 and newer are observed to work more reliably.
|
||||
|
||||
## CLI Configuration
|
||||
|
||||
Interaction with Meshtastic can be conducted via the command line:
|
||||
|
||||
```shell
|
||||
meshtastic --host localhost ...
|
||||
```
|
Loading…
Reference in a new issue