mirror of
https://github.com/meshtastic/meshtastic.git
synced 2025-03-05 21:00:08 -08:00
push updated lock file and formatting fixes
This commit is contained in:
parent
76eb4cd131
commit
83213a62ef
|
@ -5,11 +5,12 @@ sidebar_label: Linux Native Devices
|
||||||
sidebar_position: 11
|
sidebar_position: 11
|
||||||
description: Set up and configure Meshtastic on Linux-native devices using the meshtasticd binary.
|
description: Set up and configure Meshtastic on Linux-native devices using the meshtasticd binary.
|
||||||
---
|
---
|
||||||
|
|
||||||
<!-- markdownlint-disable code-block-style -->
|
<!-- markdownlint-disable code-block-style -->
|
||||||
|
|
||||||
import Tabs from '@theme/Tabs';
|
import Tabs from "@theme/Tabs";
|
||||||
import TabItem from '@theme/TabItem';
|
import TabItem from "@theme/TabItem";
|
||||||
import { Icon } from '@iconify/react';
|
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.
|
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:
|
Before proceeding with the setup, ensure the device meets the following requirements:
|
||||||
|
|
||||||
### Tested Devices
|
### Tested Devices
|
||||||
|
|
||||||
#### SPI
|
#### SPI
|
||||||
|
|
||||||
- Raspberry Pi: Zero, Zero 2, 3, 4, Pi 400, and Pi 5 on Raspbian `bookworm`.
|
- 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`.
|
- Luckfox Pico: [femtofox](https://github.com/noon92/femtofox/tree/main) on Ubuntu 22.04 `jammy`.
|
||||||
|
|
||||||
#### USB (CH341)
|
#### USB (CH341)
|
||||||
|
|
||||||
- Debian 12 (`bookworm`) with MeshStick.
|
- Debian 12 (`bookworm`) with MeshStick.
|
||||||
- Ubuntu LTS (`24.04`, `22.04`) with MeshStick.
|
- Ubuntu LTS (`24.04`, `22.04`) with MeshStick.
|
||||||
- Fedora `41` 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.
|
- 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
|
### System Requirements
|
||||||
|
|
||||||
- The Meshtastic binary, `meshtasticd`, necessitates root access or a user with permissions to access GPIO, SPI, and other interfaces.
|
- 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.
|
- A Linux distribution compatible with the Meshtastic installation packages.
|
||||||
|
|
||||||
## Installation
|
## Installation
|
||||||
|
|
||||||
### Installing Meshtasticd
|
### Installing Meshtasticd
|
||||||
|
|
||||||
<!-- markdownlint-disable no-inline-html -->
|
<!-- markdownlint-disable no-inline-html -->
|
||||||
|
|
||||||
<Tabs groupId="operating-systems" queryString="os">
|
<Tabs groupId="operating-systems" queryString="os">
|
||||||
<TabItem value="debian" label={<><Icon icon="mdi:debian" height="1.5rem" /> Debian</>} default>
|
<TabItem value="debian" label={<><Icon icon="mdi:debian" height="1.5rem" /> Debian</>} default>
|
||||||
Debian packages are provided via [OpenSUSE Build Service](https://build.opensuse.org/project/show/network:meshtastic).
|
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
|
```shell
|
||||||
```
|
```
|
||||||
</details>
|
</details>
|
||||||
|
|
||||||
</TabItem>
|
</TabItem>
|
||||||
<TabItem value="raspbian" label={<><Icon icon="cib:raspberry-pi" height="1.5rem" /> Raspbian</>}>
|
<TabItem value="raspbian" label={<><Icon icon="cib:raspberry-pi" height="1.5rem" /> Raspbian</>}>
|
||||||
Raspbian (Raspberry Pi OS) packages are provided via [OpenSUSE Build Service](https://build.opensuse.org/project/show/network:meshtastic).
|
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:**
|
||||||
> Install via the instructions above.
|
> Install via the instructions above.
|
||||||
</details>
|
</details>
|
||||||
|
|
||||||
</TabItem>
|
</TabItem>
|
||||||
<TabItem value="fedora" label={<><Icon icon="mdi:fedora" height="1.5rem" /> Fedora</>}>
|
<TabItem value="fedora" label={<><Icon icon="mdi:fedora" height="1.5rem" /> Fedora</>}>
|
||||||
Fedora packages are provided via Fedora COPR.
|
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 - `rawhide`:**
|
||||||
> Install via the instructions above.
|
> Install via the instructions above.
|
||||||
</details>
|
</details>
|
||||||
|
|
||||||
</TabItem>
|
</TabItem>
|
||||||
|
|
||||||
<TabItem value="docker" label={<><Icon icon="mdi:docker" height="1.5rem" /> Docker</>}>
|
<TabItem value="docker" label={<><Icon icon="mdi:docker" height="1.5rem" /> Docker</>}>
|
||||||
|
@ -139,6 +149,7 @@ UART HATs and SX1302/SX1303 chip-based HATs are not supported. Only hats that us
|
||||||
```shell
|
```shell
|
||||||
docker pull meshtastic/meshtasticd
|
docker pull meshtastic/meshtasticd
|
||||||
```
|
```
|
||||||
|
|
||||||
</TabItem>
|
</TabItem>
|
||||||
</Tabs>
|
</Tabs>
|
||||||
<!-- markdownlint-enable no-inline-html -->
|
<!-- markdownlint-enable no-inline-html -->
|
||||||
|
@ -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 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`.
|
- 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
|
- You may need to disable the serial console on a Pi and then reboot
|
||||||
|
|
||||||
```shell
|
```shell
|
||||||
sudo raspi-config nonint do_serial_cons 1 # Disable Serial Console
|
sudo raspi-config nonint do_serial_cons 1 # Disable Serial Console
|
||||||
```
|
```
|
||||||
|
@ -218,6 +230,7 @@ Lora:
|
||||||
Busy: 20
|
Busy: 20
|
||||||
Reset: 18
|
Reset: 18
|
||||||
```
|
```
|
||||||
|
|
||||||
:::info
|
:::info
|
||||||
The config.yaml file is sensitive to spacing, so ensure that the indentation and spacing are correct.
|
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.
|
[^1]: Fedora packages do not currently include **web server** support.
|
||||||
|
|
||||||
To enable this:
|
To enable this:
|
||||||
|
|
||||||
```yaml
|
```yaml
|
||||||
Webserver:
|
Webserver:
|
||||||
Port: 443 # Port for Webserver & Webservices
|
Port: 443 # Port for Webserver & Webservices
|
||||||
RootPath: /usr/share/meshtasticd/web # Root Dir of WebServer
|
RootPath: /usr/share/meshtasticd/web # Root Dir of WebServer
|
||||||
```
|
```
|
||||||
|
|
||||||
### Bluetooth Support
|
### Bluetooth Support
|
||||||
|
|
||||||
Bluetooth is currently unsupported and not functional on Linux Native devices. This may change in the future.
|
Bluetooth is currently unsupported and not functional on Linux Native devices. This may change in the future.
|
||||||
|
|
||||||
### Persistence
|
### Persistence
|
||||||
|
@ -244,47 +260,54 @@ Bluetooth is currently unsupported and not functional on Linux Native devices. T
|
||||||
### Advanced Setup and Troubleshooting
|
### Advanced Setup and Troubleshooting
|
||||||
|
|
||||||
#### Enabling the systemd service
|
#### 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.
|
To configure the device to start and stop meshtasticd as as service using systemctl you can setup the service unit using the instructions below.
|
||||||
|
|
||||||
<!-- markdownlint-disable no-inline-html -->
|
<!-- markdownlint-disable no-inline-html -->
|
||||||
|
|
||||||
<details>
|
<details>
|
||||||
<summary>Create the systemd service (only for manual installs)</summary>
|
<summary>Create the systemd service (only for manual installs)</summary>
|
||||||
|
|
||||||
The `meshtasticd` systemd service is automatically installed when using the official Meshtastic packages.
|
The `meshtasticd` systemd service is automatically installed when using the official Meshtastic packages.
|
||||||
These instructions are only needed when installing manually.
|
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.
|
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:
|
|
||||||
|
|
||||||
```plaintext
|
```shell
|
||||||
[Unit]
|
sudo nano /etc/systemd/system/meshtasticd.service
|
||||||
Description=Meshtastic Daemon
|
```
|
||||||
After=network.target
|
|
||||||
|
|
||||||
[Service]
|
Add the following content to the file:
|
||||||
ExecStart=/usr/sbin/meshtasticd
|
|
||||||
Restart=always
|
|
||||||
User=root
|
|
||||||
Group=root
|
|
||||||
Type=simple
|
|
||||||
|
|
||||||
[Install]
|
```plaintext
|
||||||
WantedBy=multi-user.target
|
[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
|
|
||||||
```
|
|
||||||
</details>
|
</details>
|
||||||
<!-- markdownlint-enable no-inline-html -->
|
<!-- markdownlint-enable no-inline-html -->
|
||||||
|
|
||||||
Enable the service to start on boot:
|
Enable the service to start on boot:
|
||||||
|
|
||||||
```shell
|
```shell
|
||||||
sudo systemctl enable meshtasticd
|
sudo systemctl enable meshtasticd
|
||||||
```
|
```
|
||||||
|
@ -292,17 +315,21 @@ sudo systemctl enable meshtasticd
|
||||||
##### Starting and Stopping the Service
|
##### Starting and Stopping the Service
|
||||||
|
|
||||||
Start the service:
|
Start the service:
|
||||||
|
|
||||||
```shell
|
```shell
|
||||||
sudo systemctl start meshtasticd
|
sudo systemctl start meshtasticd
|
||||||
```
|
```
|
||||||
|
|
||||||
Check the status of the service:
|
Check the status of the service:
|
||||||
|
|
||||||
```shell
|
```shell
|
||||||
sudo systemctl status meshtasticd
|
sudo systemctl status meshtasticd
|
||||||
```
|
```
|
||||||
|
|
||||||
This will give you a detailed view of the service status and any potential errors.
|
This will give you a detailed view of the service status and any potential errors.
|
||||||
|
|
||||||
Stop the service:
|
Stop the service:
|
||||||
|
|
||||||
```shell
|
```shell
|
||||||
sudo systemctl stop meshtasticd
|
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.).
|
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
|
#### 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.
|
To view the log output of the meshtasticd service, use the below command to read them out of the system journal.
|
||||||
|
|
||||||
```shell
|
```shell
|
||||||
|
@ -317,6 +345,7 @@ journalctl -u meshtasticd -b
|
||||||
```
|
```
|
||||||
|
|
||||||
#### Avahi setup
|
#### Avahi setup
|
||||||
|
|
||||||
This will allow the Android client to auto-discover your Linux Native device.
|
This will allow the Android client to auto-discover your Linux Native device.
|
||||||
|
|
||||||
- Install avahi-daemon (debian/ubuntu)
|
- Install avahi-daemon (debian/ubuntu)
|
||||||
|
@ -328,11 +357,13 @@ sudo apt install avahi-daemon
|
||||||
- Configure Avahi to advertise the node
|
- Configure Avahi to advertise the node
|
||||||
|
|
||||||
Create the service file:
|
Create the service file:
|
||||||
|
|
||||||
```shell
|
```shell
|
||||||
sudo nano /etc/avahi/services/meshtastic.service
|
sudo nano /etc/avahi/services/meshtastic.service
|
||||||
```
|
```
|
||||||
|
|
||||||
And paste the following:
|
And paste the following:
|
||||||
|
|
||||||
```xml
|
```xml
|
||||||
<?xml version="1.0" standalone="no"?><!--*-nxml-*-->
|
<?xml version="1.0" standalone="no"?><!--*-nxml-*-->
|
||||||
<!DOCTYPE service-group SYSTEM "avahi-service.dtd">
|
<!DOCTYPE service-group SYSTEM "avahi-service.dtd">
|
||||||
|
@ -344,6 +375,7 @@ And paste the following:
|
||||||
</service>
|
</service>
|
||||||
</service-group>
|
</service-group>
|
||||||
```
|
```
|
||||||
|
|
||||||
Then save and exit.
|
Then save and exit.
|
||||||
|
|
||||||
## CLI Configuration
|
## CLI Configuration
|
||||||
|
@ -353,6 +385,8 @@ Interaction with Meshtastic can be conducted via the command line:
|
||||||
```plaintext
|
```plaintext
|
||||||
meshtastic --host localhost ...
|
meshtastic --host localhost ...
|
||||||
```
|
```
|
||||||
|
|
||||||
See:
|
See:
|
||||||
|
|
||||||
- [CLI Installation](/docs/software/python/cli/installation/)
|
- [CLI Installation](/docs/software/python/cli/installation/)
|
||||||
- [CLI Usage](/docs/software/python/cli/usage/)
|
- [CLI Usage](/docs/software/python/cli/usage/)
|
||||||
|
|
|
@ -35,6 +35,9 @@ importers:
|
||||||
'@heroicons/react':
|
'@heroicons/react':
|
||||||
specifier: ^2.1.1
|
specifier: ^2.1.1
|
||||||
version: 2.1.5(react@18.3.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':
|
'@mdx-js/react':
|
||||||
specifier: ^3.0.1
|
specifier: ^3.0.1
|
||||||
version: 3.0.1(@types/react@18.3.5)(react@18.3.1)
|
version: 3.0.1(@types/react@18.3.5)(react@18.3.1)
|
||||||
|
@ -1632,6 +1635,14 @@ packages:
|
||||||
peerDependencies:
|
peerDependencies:
|
||||||
react: '>= 16'
|
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':
|
'@isaacs/cliui@8.0.2':
|
||||||
resolution: {integrity: sha512-O8jcjabXaleOG9DQ0+ARXWZBTfnP4WNAqzuiJK7ll44AmxGKv/J2M4TPjxjY3znBCfvBXFzucm1twdyFybFqEA==}
|
resolution: {integrity: sha512-O8jcjabXaleOG9DQ0+ARXWZBTfnP4WNAqzuiJK7ll44AmxGKv/J2M4TPjxjY3znBCfvBXFzucm1twdyFybFqEA==}
|
||||||
engines: {node: '>=12'}
|
engines: {node: '>=12'}
|
||||||
|
@ -8571,6 +8582,13 @@ snapshots:
|
||||||
dependencies:
|
dependencies:
|
||||||
react: 18.3.1
|
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':
|
'@isaacs/cliui@8.0.2':
|
||||||
dependencies:
|
dependencies:
|
||||||
string-width: 5.1.2
|
string-width: 5.1.2
|
||||||
|
|
Loading…
Reference in a new issue