diff --git a/docs/hardware/devices/linux-native-hardware/linux-native-hardware.mdx b/docs/hardware/devices/linux-native-hardware/linux-native-hardware.mdx
index 41a1accd..93073ad4 100644
--- a/docs/hardware/devices/linux-native-hardware/linux-native-hardware.mdx
+++ b/docs/hardware/devices/linux-native-hardware/linux-native-hardware.mdx
@@ -5,11 +5,12 @@ sidebar_label: Linux Native Devices
sidebar_position: 11
description: Set up and configure Meshtastic on Linux-native devices using the meshtasticd binary.
---
+
-import Tabs from '@theme/Tabs';
-import TabItem from '@theme/TabItem';
-import { Icon } from '@iconify/react';
+import Tabs from "@theme/Tabs";
+import TabItem from "@theme/TabItem";
+import { Icon } from "@iconify/react";
This page outlines the setup of Meshtastic on Linux-native devices, utilizing portduino to run the Meshtastic firmware under Linux.
@@ -18,11 +19,14 @@ This page outlines the setup of Meshtastic on Linux-native devices, utilizing po
Before proceeding with the setup, ensure the device meets the following requirements:
### Tested Devices
+
#### SPI
+
- Raspberry Pi: Zero, Zero 2, 3, 4, Pi 400, and Pi 5 on Raspbian `bookworm`.
- Luckfox Pico: [femtofox](https://github.com/noon92/femtofox/tree/main) on Ubuntu 22.04 `jammy`.
#### USB (CH341)
+
- Debian 12 (`bookworm`) with MeshStick.
- Ubuntu LTS (`24.04`, `22.04`) with MeshStick.
- Fedora `41` with MeshStick.
@@ -38,13 +42,16 @@ UART HATs and SX1302/SX1303 chip-based HATs are not supported. Only hats that us
- 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 packages.
## Installation
### Installing Meshtasticd
+
+
Debian>} default>
Debian packages are provided via [OpenSUSE Build Service](https://build.opensuse.org/project/show/network:meshtastic).
@@ -70,6 +77,7 @@ UART HATs and SX1302/SX1303 chip-based HATs are not supported. Only hats that us
```shell
```
+
Raspbian>}>
Raspbian (Raspberry Pi OS) packages are provided via [OpenSUSE Build Service](https://build.opensuse.org/project/show/network:meshtastic).
@@ -106,6 +114,7 @@ UART HATs and SX1302/SX1303 chip-based HATs are not supported. Only hats that us
**Install:**
> Install via the instructions above.
+
Fedora>}>
Fedora packages are provided via Fedora COPR.
@@ -130,6 +139,7 @@ UART HATs and SX1302/SX1303 chip-based HATs are not supported. Only hats that us
**Install - `rawhide`:**
> Install via the instructions above.
+
Docker>}>
@@ -139,6 +149,7 @@ UART HATs and SX1302/SX1303 chip-based HATs are not supported. Only hats that us
```shell
docker pull meshtastic/meshtasticd
```
+
@@ -199,6 +210,7 @@ dtoverlay=uart0
- The correct port for UART GPS on the Pi 5 after a reboot is `/dev/ttyAMA0`.
- The correct port for UART GPS on earlier Pi versions after a reboot is `/dev/ttyS0`.
- You may need to disable the serial console on a Pi and then reboot
+
```shell
sudo raspi-config nonint do_serial_cons 1 # Disable Serial Console
```
@@ -218,6 +230,7 @@ Lora:
Busy: 20
Reset: 18
```
+
:::info
The config.yaml file is sensitive to spacing, so ensure that the indentation and spacing are correct.
:::
@@ -229,12 +242,15 @@ The config.yaml file is sensitive to spacing, so ensure that the indentation and
[^1]: Fedora packages do not currently include **web server** support.
To enable this:
+
```yaml
Webserver:
Port: 443 # Port for Webserver & Webservices
RootPath: /usr/share/meshtasticd/web # Root Dir of WebServer
```
+
### Bluetooth Support
+
Bluetooth is currently unsupported and not functional on Linux Native devices. This may change in the future.
### Persistence
@@ -244,47 +260,54 @@ Bluetooth is currently unsupported and not functional on Linux Native devices. T
### Advanced Setup and Troubleshooting
#### Enabling the systemd service
+
To configure the device to start and stop meshtasticd as as service using systemctl you can setup the service unit using the instructions below.
+
Create the systemd service (only for manual installs)
- The `meshtasticd` systemd service is automatically installed when using the official Meshtastic packages.
- These instructions are only needed when installing manually.
+The `meshtasticd` systemd service is automatically installed when using the official Meshtastic packages.
+These instructions are only needed when installing manually.
- Create the service unit file:
+Create the service unit file:
- Create a new file in the /etc/systemd/system/ directory with a name like meshtasticd.service.
- ```shell
- sudo nano /etc/systemd/system/meshtasticd.service
- ```
- Add the following content to the file:
+Create a new file in the /etc/systemd/system/ directory with a name like meshtasticd.service.
- ```plaintext
- [Unit]
- Description=Meshtastic Daemon
- After=network.target
+```shell
+sudo nano /etc/systemd/system/meshtasticd.service
+```
- [Service]
- ExecStart=/usr/sbin/meshtasticd
- Restart=always
- User=root
- Group=root
- Type=simple
+Add the following content to the file:
- [Install]
- WantedBy=multi-user.target
- ```
+```plaintext
+[Unit]
+Description=Meshtastic Daemon
+After=network.target
+
+[Service]
+ExecStart=/usr/sbin/meshtasticd
+Restart=always
+User=root
+Group=root
+Type=simple
+
+[Install]
+WantedBy=multi-user.target
+```
+
+Reload systemd to recognize the new service:
+
+```shell
+sudo systemctl daemon-reload
+```
- Reload systemd to recognize the new service:
- ```shell
- sudo systemctl daemon-reload
- ```
Enable the service to start on boot:
+
```shell
sudo systemctl enable meshtasticd
```
@@ -292,17 +315,21 @@ sudo systemctl enable meshtasticd
##### Starting and Stopping the Service
Start the service:
+
```shell
sudo systemctl start meshtasticd
```
Check the status of the service:
+
```shell
sudo systemctl status meshtasticd
```
+
This will give you a detailed view of the service status and any potential errors.
Stop the service:
+
```shell
sudo systemctl stop meshtasticd
```
@@ -310,6 +337,7 @@ sudo systemctl stop meshtasticd
By following these steps, you set up a systemd service for meshtasticd that will start automatically at boot and restart if it crashes. You can manage it using the standard systemctl commands (start, stop, restart, status, etc.).
#### View Logs of Meshtastic
+
To view the log output of the meshtasticd service, use the below command to read them out of the system journal.
```shell
@@ -317,6 +345,7 @@ journalctl -u meshtasticd -b
```
#### Avahi setup
+
This will allow the Android client to auto-discover your Linux Native device.
- Install avahi-daemon (debian/ubuntu)
@@ -328,11 +357,13 @@ sudo apt install avahi-daemon
- Configure Avahi to advertise the node
Create the service file:
+
```shell
sudo nano /etc/avahi/services/meshtastic.service
```
And paste the following:
+
```xml
@@ -344,6 +375,7 @@ And paste the following:
```
+
Then save and exit.
## CLI Configuration
@@ -353,6 +385,8 @@ Interaction with Meshtastic can be conducted via the command line:
```plaintext
meshtastic --host localhost ...
```
+
See:
+
- [CLI Installation](/docs/software/python/cli/installation/)
- [CLI Usage](/docs/software/python/cli/usage/)
diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml
index badfc058..1ab16842 100644
--- a/pnpm-lock.yaml
+++ b/pnpm-lock.yaml
@@ -35,6 +35,9 @@ importers:
'@heroicons/react':
specifier: ^2.1.1
version: 2.1.5(react@18.3.1)
+ '@iconify/react':
+ specifier: ^5.2.0
+ version: 5.2.0(react@18.3.1)
'@mdx-js/react':
specifier: ^3.0.1
version: 3.0.1(@types/react@18.3.5)(react@18.3.1)
@@ -1632,6 +1635,14 @@ packages:
peerDependencies:
react: '>= 16'
+ '@iconify/react@5.2.0':
+ resolution: {integrity: sha512-7Sdjrqq3fkkQNks9SY3adGC37NQTHsBJL2PRKlQd455PoDi9s+Es9AUTY+vGLFOYs5yO9w9yCE42pmxCwG26WA==}
+ peerDependencies:
+ react: '>=16'
+
+ '@iconify/types@2.0.0':
+ resolution: {integrity: sha512-+wluvCrRhXrhyOmRDJ3q8mux9JkKy5SJ/v8ol2tu4FVjyYvtEzkc/3pK15ET6RKg4b4w4BmTk1+gsCUhf21Ykg==}
+
'@isaacs/cliui@8.0.2':
resolution: {integrity: sha512-O8jcjabXaleOG9DQ0+ARXWZBTfnP4WNAqzuiJK7ll44AmxGKv/J2M4TPjxjY3znBCfvBXFzucm1twdyFybFqEA==}
engines: {node: '>=12'}
@@ -8571,6 +8582,13 @@ snapshots:
dependencies:
react: 18.3.1
+ '@iconify/react@5.2.0(react@18.3.1)':
+ dependencies:
+ '@iconify/types': 2.0.0
+ react: 18.3.1
+
+ '@iconify/types@2.0.0': {}
+
'@isaacs/cliui@8.0.2':
dependencies:
string-width: 5.1.2