push updated lock file and formatting fixes

This commit is contained in:
rcarteraz 2025-01-09 20:31:01 -07:00
parent 76eb4cd131
commit 83213a62ef
2 changed files with 80 additions and 28 deletions

View file

@ -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/)

View file

@ -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