From 83213a62ef8c2a103a19c1d3a50eda9cf1ca99f2 Mon Sep 17 00:00:00 2001 From: rcarteraz Date: Thu, 9 Jan 2025 20:31:01 -0700 Subject: [PATCH] push updated lock file and formatting fixes --- .../linux-native-hardware.mdx | 90 +++++++++++++------ pnpm-lock.yaml | 18 ++++ 2 files changed, 80 insertions(+), 28 deletions(-) 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