mirror of
https://github.com/markqvist/Reticulum.git
synced 2025-12-17 17:34:56 -05:00
Updated documentation
This commit is contained in:
parent
0896df05b6
commit
77d40215c8
46 changed files with 2857 additions and 15197 deletions
|
|
@ -10,7 +10,7 @@ sys.path.insert(0, os.path.abspath('../..'))
|
|||
|
||||
# -- Project information -----------------------------------------------------
|
||||
project = 'Reticulum Network Stack'
|
||||
copyright = '2023, Mark Qvist'
|
||||
copyright = '2025, Mark Qvist'
|
||||
author = 'Mark Qvist'
|
||||
|
||||
exec(open("../../RNS/_version.py", "r").read())
|
||||
|
|
|
|||
|
|
@ -12,7 +12,7 @@ Standalone Reticulum Installation
|
|||
If you simply want to install Reticulum and related utilities on a system,
|
||||
the easiest way is via the ``pip`` package manager:
|
||||
|
||||
.. code::
|
||||
.. code:: shell
|
||||
|
||||
pip install rns
|
||||
|
||||
|
|
@ -23,9 +23,18 @@ of your system with a command like ``sudo apt install python3-pip``,
|
|||
You can also dowload the Reticulum release wheels from GitHub, or other release channels,
|
||||
and install them offline using ``pip``:
|
||||
|
||||
.. code::
|
||||
.. code:: shell
|
||||
|
||||
pip install ./rns-0.5.1-py3-none-any.whl
|
||||
pip install ./rns-1.0.1-py3-none-any.whl
|
||||
|
||||
On platforms that limit user package installation via ``pip``, you may need to manually
|
||||
allow this using the ``--break-system-packages`` command line flag when installing. This
|
||||
will not actually break any packages, unless you have installed Reticulum directly via
|
||||
your operating system's package manager.
|
||||
|
||||
.. code:: shell
|
||||
|
||||
pip install rns --break-system-packages
|
||||
|
||||
For more detailed installation instructions, please see the
|
||||
:ref:`Platform-Specific Install Notes<install-guides>` section.
|
||||
|
|
@ -39,7 +48,7 @@ On some platforms, there may not be binary packages available for all dependenci
|
|||
``pip`` installation may fail with an error message. In these cases, the issue can usually
|
||||
be resolved by installing the development essentials packages for your platform:
|
||||
|
||||
.. code::
|
||||
.. code:: shell
|
||||
|
||||
# Debian / Ubuntu / Derivatives
|
||||
sudo apt install build-essential
|
||||
|
|
@ -245,17 +254,16 @@ easier setup, use TCP.
|
|||
Connect to the Public Testnet
|
||||
===========================================
|
||||
|
||||
An experimental public testnet has been made accessible over both I2P and TCP. You can join it
|
||||
by adding one of the following interfaces to your ``.reticulum/config`` file:
|
||||
An experimental public testnet has been made accessible by volunteers in the community. You
|
||||
can find interface definitions for adding to your ``.reticulum/config`` file on the
|
||||
`Reticulum Website <https://reticulum.network/connect.html>`_ or the
|
||||
`Community Wiki <https://github.com/markqvist/Reticulum/wiki/Community-Node-List>`_
|
||||
|
||||
.. code::
|
||||
You can connect your devices or instances to one or more of these to gain access to any
|
||||
Reticulum networks they are physically connected to. Simply add one or more interface
|
||||
snippets to your config file in the ``[interface]`` section, like in the example below:
|
||||
|
||||
# TCP/IP interface to the RNS Amsterdam Hub
|
||||
[[RNS Testnet Amsterdam]]
|
||||
type = TCPClientInterface
|
||||
enabled = yes
|
||||
target_host = amsterdam.connect.reticulum.network
|
||||
target_port = 4965
|
||||
.. code:: ini
|
||||
|
||||
# TCP/IP interface to the BetweenTheBorders Hub (community-provided)
|
||||
[[RNS Testnet BetweenTheBorders]]
|
||||
|
|
@ -264,11 +272,11 @@ by adding one of the following interfaces to your ``.reticulum/config`` file:
|
|||
target_host = reticulum.betweentheborders.com
|
||||
target_port = 4242
|
||||
|
||||
# Interface to Testnet I2P Hub
|
||||
[[RNS Testnet I2P Hub]]
|
||||
type = I2PInterface
|
||||
enabled = yes
|
||||
peers = g3br23bvx3lq5uddcsjii74xgmn6y5q325ovrkq2zw2wbzbqgbuq.b32.i2p
|
||||
|
||||
.. tip::
|
||||
Ideally, set up a Reticulum Transport Node that your own devices can reach locally, and then
|
||||
connect that transport node to a couple of public entrypoints. This will provide efficient
|
||||
connections and redundancy in case any of them go down.
|
||||
|
||||
Many other Reticulum instances are connecting to this testnet, and you can also join it
|
||||
via other entry points if you know them. There is absolutely no control over the network
|
||||
|
|
@ -276,13 +284,65 @@ topography, usage or what types of instances connect. It will also occasionally
|
|||
to test various failure scenarios, and there are no availability or service guarantees.
|
||||
Expect weird things to happen on this network, as people experiment and try out things.
|
||||
|
||||
It probably goes without saying, but *don't use the testnet entry-points as
|
||||
hardcoded or default interfaces in any applications you ship to users*. When
|
||||
shipping applications, the best practice is to provide your own default
|
||||
connectivity solutions, if needed and applicable, or in most cases, simply
|
||||
leave it up to the user which networks to connect to, and how.
|
||||
.. warning::
|
||||
It probably goes without saying, but *don't use the testnet entry-points as
|
||||
hardcoded or default interfaces in any applications you ship to users*. When
|
||||
shipping applications, the best practice is to provide your own default
|
||||
connectivity solutions, if needed and applicable, or in most cases, simply
|
||||
leave it up to the user which networks to connect to, and how.
|
||||
|
||||
|
||||
Hosting Public Entrypoints
|
||||
===========================================
|
||||
|
||||
If you want to host a public (or private) entry-point to a Reticulum network over the
|
||||
Internet, this section offers some helpful pointers. You will need a machine, physical or
|
||||
virtual with a public IP address, that can be reached by other devices on the Internet.
|
||||
|
||||
The most efficient and performant way to host a connectable entry-point supporting many
|
||||
users is to use the ``BackboneInterface``. This interface type is fully compatible with
|
||||
the ``TCPClientInterface`` and ``TCPServerInterface`` types, but much faster and uses
|
||||
less system resources, allowing your device to handle thousands of connections even on
|
||||
small systems.
|
||||
|
||||
It is also important to set your connectable interface to ``gateway`` mode, since this
|
||||
will greatly improve network convergence time and path resolution for anyone connecting
|
||||
to your entry-point.
|
||||
|
||||
.. code:: ini
|
||||
|
||||
# This example demonstrates a backbone interface
|
||||
# configured for acting as a gateway for users to
|
||||
# connect to either a public or private network
|
||||
|
||||
[[Public Gateway]]
|
||||
type = BackboneInterface
|
||||
enabled = yes
|
||||
mode = gateway
|
||||
listen_on = 0.0.0.0
|
||||
port = 4242
|
||||
|
||||
If instead you want to make a private entry-point from the Internet, you can use the
|
||||
:ref:`IFAC name and passphrase options<interfaces-options>` to secure your interface with a network name and passphrase.
|
||||
|
||||
.. code:: ini
|
||||
|
||||
# A private entry-point requiring a pre-shared
|
||||
# network name and passphrase to connect to.
|
||||
|
||||
[[Private Gateway]]
|
||||
type = BackboneInterface
|
||||
enabled = yes
|
||||
mode = gateway
|
||||
listen_on = 0.0.0.0
|
||||
port = 4242
|
||||
network_name = private_ret
|
||||
passphrase = 2owjajquafIanPecAc
|
||||
|
||||
If you are hosting an entry-point on an operating system that does not support
|
||||
``BackboneInterface``, you can use ``TCPServerInterface`` instead, although it will
|
||||
not be as performant.
|
||||
|
||||
Adding Radio Interfaces
|
||||
==============================================
|
||||
Once you have Reticulum installed and working, you can add radio interfaces with
|
||||
|
|
@ -349,7 +409,7 @@ If you want to participate in the development of Reticulum and associated
|
|||
utilities, you'll want to get the latest source from GitHub. In that case,
|
||||
don't use pip, but try this recipe:
|
||||
|
||||
.. code::
|
||||
.. code:: shell
|
||||
|
||||
# Install dependencies
|
||||
pip install cryptography pyserial
|
||||
|
|
@ -415,7 +475,7 @@ build into Termux. After that, you can use ``pip`` to install Reticulum.
|
|||
|
||||
From within Termux, execute the following:
|
||||
|
||||
.. code::
|
||||
.. code:: shell
|
||||
|
||||
# First, make sure indexes and packages are up to date.
|
||||
pkg update
|
||||
|
|
@ -434,7 +494,7 @@ If for some reason the ``python-cryptography`` package is not available for
|
|||
your platform via the Termux package manager, you can attempt to build it
|
||||
locally on your device using the following command:
|
||||
|
||||
.. code::
|
||||
.. code:: shell
|
||||
|
||||
# First, make sure indexes and packages are up to date.
|
||||
pkg update
|
||||
|
|
@ -470,7 +530,7 @@ On some architectures, including ARM64, not all dependencies have precompiled
|
|||
binaries. On such systems, you may need to install ``python3-dev`` (or similar) before
|
||||
installing Reticulum or programs that depend on Reticulum.
|
||||
|
||||
.. code::
|
||||
.. code:: shell
|
||||
|
||||
# Install Python and development packages
|
||||
sudo apt update
|
||||
|
|
@ -491,7 +551,7 @@ use the replacement ``pipx`` command instead, which places installed packages in
|
|||
isolated environment. This should not negatively affect Reticulum, but will not work
|
||||
for including and using Reticulum in your own scripts and programs.
|
||||
|
||||
.. code::
|
||||
.. code:: shell
|
||||
|
||||
# Install pipx
|
||||
sudo apt install pipx
|
||||
|
|
@ -506,7 +566,7 @@ Alternatively, you can restore normal behaviour to ``pip`` by creating or editin
|
|||
the configuration file located at ``~/.config/pip/pip.conf``, and adding the
|
||||
following section:
|
||||
|
||||
.. code:: text
|
||||
.. code:: ini
|
||||
|
||||
[global]
|
||||
break-system-packages = true
|
||||
|
|
@ -514,7 +574,7 @@ following section:
|
|||
For a one-shot installation of Reticulum, without globally enabling the ``break-system-packages``
|
||||
option, you can use the following command:
|
||||
|
||||
.. code:: text
|
||||
.. code:: shell
|
||||
|
||||
pip install rns --break-system-packages
|
||||
|
||||
|
|
@ -539,7 +599,7 @@ Python manually.
|
|||
When Python and ``pip`` is available on your system, simply open a terminal window
|
||||
and use one of the following commands:
|
||||
|
||||
.. code::
|
||||
.. code:: shell
|
||||
|
||||
# Install Reticulum and utilities with pip:
|
||||
pip3 install rns
|
||||
|
|
@ -560,7 +620,7 @@ manually add your installed ``pip`` packages directory to your `PATH` environmen
|
|||
variable, before you can use installed commands in your terminal. Usually, adding
|
||||
the following line to your shell init script (for example ``~/.zshrc``) will be enough:
|
||||
|
||||
.. code::
|
||||
.. code:: shell
|
||||
|
||||
export PATH=$PATH:~/Library/Python/3.9/bin
|
||||
|
||||
|
|
@ -583,7 +643,7 @@ Reticulum and related utilities using the `opkg` package manager and `pip`.
|
|||
To install Reticulum on OpenWRT, first log into a command line session, and
|
||||
then use the following instructions:
|
||||
|
||||
.. code::
|
||||
.. code:: shell
|
||||
|
||||
# Install dependencies
|
||||
opkg install python3 python3-pip python3-cryptography python3-pyserial
|
||||
|
|
@ -620,7 +680,7 @@ don't always have packages available for some dependencies. If Python and the
|
|||
`pip` package manager is not already installed, do that first, and then
|
||||
install Reticulum using `pip`.
|
||||
|
||||
.. code::
|
||||
.. code:: shell
|
||||
|
||||
# Install dependencies
|
||||
sudo apt install python3 python3-pip python3-cryptography python3-pyserial
|
||||
|
|
@ -646,7 +706,7 @@ On some architectures, including RISC-V, not all dependencies have precompiled
|
|||
binaries. On such systems, you may need to install ``python3-dev`` (or similar) before
|
||||
installing Reticulum or programs that depend on Reticulum.
|
||||
|
||||
.. code::
|
||||
.. code:: shell
|
||||
|
||||
# Install Python and development packages
|
||||
sudo apt update
|
||||
|
|
@ -667,7 +727,7 @@ use the replacement ``pipx`` command instead, which places installed packages in
|
|||
isolated environment. This should not negatively affect Reticulum, but will not work
|
||||
for including and using Reticulum in your own scripts and programs.
|
||||
|
||||
.. code::
|
||||
.. code:: shell
|
||||
|
||||
# Install pipx
|
||||
sudo apt install pipx
|
||||
|
|
@ -717,7 +777,7 @@ use the ``pip`` installer, or run the included Reticulum utility programs (such
|
|||
|
||||
After installing Python, open the command prompt or Windows Powershell, and type:
|
||||
|
||||
.. code::
|
||||
.. code:: shell
|
||||
|
||||
pip install rns
|
||||
|
||||
|
|
|
|||
|
|
@ -17,6 +17,9 @@ for example the :ref:`PipeInterface<interfaces-pipe>` or the :ref:`TCPClientInte
|
|||
in combination with code like `TCP KISS Server <https://github.com/simplyequipped/tcpkissserver>`_
|
||||
by `simplyequipped <https://github.com/simplyequipped>`_.
|
||||
|
||||
It is also very easy to write and load :ref:`custom interface modules<interfaces-custom>`
|
||||
into Reticulum, allowing you to communicate with more or less anything you can think of.
|
||||
|
||||
While this broad support and flexibility is very useful, an abundance of options
|
||||
can sometimes make it difficult to know where to begin, especially when you are
|
||||
starting from scratch.
|
||||
|
|
|
|||
|
|
@ -25,8 +25,8 @@ to participate in the development of Reticulum itself.
|
|||
hardware
|
||||
interfaces
|
||||
networks
|
||||
examples
|
||||
support
|
||||
examples
|
||||
|
||||
.. toctree::
|
||||
:maxdepth: 2
|
||||
|
|
|
|||
|
|
@ -39,6 +39,11 @@ nodes over any kind of local Ethernet or WiFi-based medium. Even though it uses
|
|||
discovery, and UDP for packet transport, it **does not** need any functional IP
|
||||
infrastructure like routers or DHCP servers, on your physical network.
|
||||
|
||||
.. warning::
|
||||
If you have **firewall** software running on your computer, it may block traffic
|
||||
required for ``AutoInterface`` to work. If this is the case, you will have to
|
||||
allow UDP traffic on port ``29716`` and ``42671``.
|
||||
|
||||
As long as there is at least some sort of switching medium present between peers (a
|
||||
wired switch, a hub, a WiFi access point or similar, or simply two devices connected
|
||||
directly by Ethernet cable), it will work without any configuration, setup or intermediary devices.
|
||||
|
|
@ -55,7 +60,7 @@ current operating systems, both desktop and mobile.
|
|||
most commonly seen on very cheap, ISP-supplied WiFi routers, and can sometimes
|
||||
be turned off in the router configuration.
|
||||
|
||||
.. code::
|
||||
.. code:: ini
|
||||
|
||||
# This example demonstrates a bare-minimum setup
|
||||
# of an Auto Interface. It will allow communica-
|
||||
|
|
@ -99,7 +104,7 @@ autodiscover other Reticulum nodes within your selected Group ID. You can specif
|
|||
the discovery scope by setting it to one of ``link``, ``admin``, ``site``,
|
||||
``organisation`` or ``global``.
|
||||
|
||||
.. code::
|
||||
.. code:: ini
|
||||
|
||||
[[Default Interface]]
|
||||
type = AutoInterface
|
||||
|
|
@ -145,7 +150,7 @@ Listeners
|
|||
|
||||
The following examples illustrates various ways to set up ``BackboneInterface`` listeners.
|
||||
|
||||
.. code::
|
||||
.. code:: ini
|
||||
|
||||
# This example demonstrates a backbone interface
|
||||
# that listens for incoming connections on the
|
||||
|
|
@ -173,7 +178,7 @@ The following examples illustrates various ways to set up ``BackboneInterface``
|
|||
If you are using the interface on a device which has both IPv4 and IPv6 addresses available,
|
||||
you can use the ``prefer_ipv6`` option to bind to the IPv6 address:
|
||||
|
||||
.. code::
|
||||
.. code:: ini
|
||||
|
||||
# This example demonstrates a backbone interface
|
||||
# listening on the IPv6 address of a specified
|
||||
|
|
@ -188,7 +193,7 @@ you can use the ``prefer_ipv6`` option to bind to the IPv6 address:
|
|||
To use the ``BackboneInterface`` over `Yggdrasil <https://yggdrasil-network.github.io/>`_, you
|
||||
can simply specify the Yggdrasil ``tun`` device and a listening port, like so:
|
||||
|
||||
.. code::
|
||||
.. code:: ini
|
||||
|
||||
# This example demonstrates a backbone interface
|
||||
# listening for connections over Yggdrasil.
|
||||
|
|
@ -204,7 +209,7 @@ The following examples illustrates various ways to connect to remote ``BackboneI
|
|||
As noted above, ``BackboneInterface`` interfaces can also connect to remote ``TCPServerInterface``,
|
||||
and as such these interface types can be used interchangably.
|
||||
|
||||
.. code::
|
||||
.. code:: ini
|
||||
|
||||
# Here's an example of a backbone interface that
|
||||
# connects to a remote listener.
|
||||
|
|
@ -217,7 +222,7 @@ and as such these interface types can be used interchangably.
|
|||
To connect to remotes over `Yggdrasil <https://yggdrasil-network.github.io/>`_, simply
|
||||
specify the target Yggdrasil IPv6 address and port, like so:
|
||||
|
||||
.. code::
|
||||
.. code:: ini
|
||||
|
||||
[[Yggdrasil Remote]]
|
||||
type = BackboneInterface
|
||||
|
|
@ -234,7 +239,7 @@ The TCP Server interface is suitable for allowing other peers to connect over
|
|||
the Internet or private IPv4 and IPv6 networks. When a TCP server interface has been
|
||||
configured, other Reticulum peers can connect to it with a TCP Client interface.
|
||||
|
||||
.. code::
|
||||
.. code:: ini
|
||||
|
||||
# This example demonstrates a TCP server interface.
|
||||
# It will listen for incoming connections on all IP
|
||||
|
|
@ -262,7 +267,7 @@ configured, other Reticulum peers can connect to it with a TCP Client interface.
|
|||
If you are using the interface on a device which has both IPv4 and IPv6 addresses available,
|
||||
you can use the ``prefer_ipv6`` option to bind to the IPv6 address:
|
||||
|
||||
.. code::
|
||||
.. code:: ini
|
||||
|
||||
# This example demonstrates a TCP server interface.
|
||||
# It will listen for incoming connections on the
|
||||
|
|
@ -278,7 +283,7 @@ you can use the ``prefer_ipv6`` option to bind to the IPv6 address:
|
|||
To use the TCP Server Interface over `Yggdrasil <https://yggdrasil-network.github.io/>`_, you
|
||||
can simply specify the Yggdrasil ``tun`` device and a listening port, like so:
|
||||
|
||||
.. code::
|
||||
.. code:: ini
|
||||
|
||||
[[Yggdrasil TCP Server Interface]]
|
||||
type = TCPServerInterface
|
||||
|
|
@ -315,7 +320,7 @@ The TCP interface types can also tolerate intermittency in the IP link layer.
|
|||
This means that Reticulum will gracefully handle IP links that go up and down,
|
||||
and restore connectivity after a failure, once the other end of a TCP interface reappears.
|
||||
|
||||
.. code::
|
||||
.. code:: ini
|
||||
|
||||
# Here's an example of a TCP Client interface. The
|
||||
# target_host can be a hostname or an IPv4 or IPv6 address.
|
||||
|
|
@ -328,7 +333,7 @@ and restore connectivity after a failure, once the other end of a TCP interface
|
|||
To use the TCP Client Interface over `Yggdrasil <https://yggdrasil-network.github.io/>`_, simply
|
||||
specify the target Yggdrasil IPv6 address and port, like so:
|
||||
|
||||
.. code::
|
||||
.. code:: ini
|
||||
|
||||
[[Yggdrasil TCP Client Interface]]
|
||||
type = TCPClientInterface
|
||||
|
|
@ -340,7 +345,7 @@ It is also possible to use this interface type to connect via other programs
|
|||
or hardware devices that expose a KISS interface on a TCP port, for example
|
||||
software-based soundmodems. To do this, use the ``kiss_framing`` option:
|
||||
|
||||
.. code::
|
||||
.. code:: ini
|
||||
|
||||
# Here's an example of a TCP Client interface that connects
|
||||
# to a software TNC soundmodem on a KISS over TCP port.
|
||||
|
|
@ -363,7 +368,7 @@ intermittent TCP links.
|
|||
The TCP interfaces support tunneling over I2P, but to do so reliably,
|
||||
you must use the i2p_tunneled option:
|
||||
|
||||
.. code::
|
||||
.. code:: ini
|
||||
|
||||
[[TCP Client over I2P]]
|
||||
type = TCPClientInterface
|
||||
|
|
@ -387,10 +392,10 @@ with all other peers on a local area network.
|
|||
Using broadcast UDP traffic has performance implications,
|
||||
especially on WiFi. If your goal is simply to enable easy communication
|
||||
with all peers in your local Ethernet broadcast domain, the
|
||||
:ref:`Auto Interface<interfaces-auto>` performs better, and is even
|
||||
:ref:`Auto Interface<interfaces-auto>` performs *much* better, and is even
|
||||
easier to use.
|
||||
|
||||
.. code::
|
||||
.. code:: ini
|
||||
|
||||
# This example enables communication with other
|
||||
# local Reticulum peers over UDP.
|
||||
|
|
@ -460,7 +465,7 @@ of the ``i2pd`` package. For more details about I2P, see the
|
|||
When an I2P router is running on your system, you can simply add
|
||||
an I2P interface to Reticulum:
|
||||
|
||||
.. code::
|
||||
.. code:: ini
|
||||
|
||||
[[I2P]]
|
||||
type = I2PInterface
|
||||
|
|
@ -477,7 +482,7 @@ also inspect the status of the interface using the ``rnstatus`` utility.
|
|||
To connect to other Reticulum instances over I2P, just add a comma-separated
|
||||
list of I2P base32 addresses to the ``peers`` option of the interface:
|
||||
|
||||
.. code::
|
||||
.. code:: ini
|
||||
|
||||
[[I2P]]
|
||||
type = I2PInterface
|
||||
|
|
@ -516,7 +521,7 @@ can be used, and offers full control over LoRa parameters.
|
|||
varies widely around the world. It is your responsibility to be aware of any
|
||||
relevant regulation for your location, and to make decisions accordingly.
|
||||
|
||||
.. code::
|
||||
.. code:: ini
|
||||
|
||||
# Here's an example of how to add a LoRa interface
|
||||
# using the RNode LoRa transceiver.
|
||||
|
|
@ -608,7 +613,7 @@ Multi interface can be used to configure sub-interfaces individually.
|
|||
varies widely around the world. It is your responsibility to be aware of any
|
||||
relevant regulation for your location, and to make decisions accordingly.
|
||||
|
||||
.. code::
|
||||
.. code:: ini
|
||||
|
||||
# Here's an example of how to add an RNode Multi interface
|
||||
# using the RNode LoRa transceiver.
|
||||
|
|
@ -724,7 +729,7 @@ Reticulum can be used over serial ports directly, or over any device with a
|
|||
serial port, that will transparently pass data. Useful for communicating
|
||||
directly over a wire-pair, or for using devices such as data radios and lasers.
|
||||
|
||||
.. code::
|
||||
.. code:: ini
|
||||
|
||||
[[Serial Interface]]
|
||||
type = SerialInterface
|
||||
|
|
@ -749,7 +754,7 @@ Using this interface, Reticulum can use any program as an interface via `stdin`
|
|||
`stdout`. This can be used to easily create virtual interfaces, or to interface with
|
||||
custom hardware or other systems.
|
||||
|
||||
.. code::
|
||||
.. code:: ini
|
||||
|
||||
[[Pipe Interface]]
|
||||
type = PipeInterface
|
||||
|
|
@ -780,7 +785,7 @@ for station identification purposes.
|
|||
varies widely around the world. It is your responsibility to be aware of any
|
||||
relevant regulation for your location, and to make decisions accordingly.
|
||||
|
||||
.. code::
|
||||
.. code:: ini
|
||||
|
||||
[[Packet Radio KISS Interface]]
|
||||
type = KISSInterface
|
||||
|
|
@ -848,7 +853,7 @@ beaconing functionality described above.
|
|||
varies widely around the world. It is your responsibility to be aware of any
|
||||
relevant regulation for your location, and to make decisions accordingly.
|
||||
|
||||
.. code::
|
||||
.. code:: ini
|
||||
|
||||
[[Packet Radio AX.25 KISS Interface]]
|
||||
type = AX25KISSInterface
|
||||
|
|
|
|||
|
|
@ -53,7 +53,7 @@ The entire configuration of Reticulum is found in the ``~/.reticulum/config``
|
|||
file. When Reticulum is first started on a new system, a basic, but fully functional
|
||||
configuration file is created. The default configuration looks like this:
|
||||
|
||||
.. code::
|
||||
.. code:: ini
|
||||
|
||||
# This is the default Reticulum config file.
|
||||
# You should probably edit it to include any additional,
|
||||
|
|
@ -260,13 +260,14 @@ various configuration options, and interface configuration examples:
|
|||
Reticulum Network Stack Daemon
|
||||
|
||||
options:
|
||||
-h, --help show this help message and exit
|
||||
--config CONFIG path to alternative Reticulum config directory
|
||||
-h, --help show this help message and exit
|
||||
--config CONFIG path to alternative Reticulum config directory
|
||||
-v, --verbose
|
||||
-q, --quiet
|
||||
-s, --service rnsd is running as a service and should log to file
|
||||
--exampleconfig print verbose configuration example to stdout and exit
|
||||
--version show program's version number and exit
|
||||
-s, --service rnsd is running as a service and should log to file
|
||||
-i, --interactive drop into interactive shell after initialisation
|
||||
--exampleconfig print verbose configuration example to stdout and exit
|
||||
--version show program's version number and exit
|
||||
|
||||
You can easily add ``rnsd`` as an always-on service by :ref:`configuring a service<using-systemd>`.
|
||||
|
||||
|
|
@ -436,31 +437,30 @@ Decrypt a file using the Reticulum Identity it was encrypted for:
|
|||
options:
|
||||
-h, --help show this help message and exit
|
||||
--config path path to alternative Reticulum config directory
|
||||
-i identity, --identity identity
|
||||
hexadecimal Reticulum Destination hash or path to Identity file
|
||||
-g path, --generate path
|
||||
generate a new Identity
|
||||
-i, --identity identity
|
||||
hexadecimal Reticulum identity or destination hash, or path to Identity file
|
||||
-g, --generate file generate a new Identity
|
||||
-m, --import identity_data
|
||||
import Reticulum identity in hex, base32 or base64 format
|
||||
-x, --export export identity to hex, base32 or base64 format
|
||||
-v, --verbose increase verbosity
|
||||
-q, --quiet decrease verbosity
|
||||
-a aspects, --announce aspects
|
||||
-a, --announce aspects
|
||||
announce a destination based on this Identity
|
||||
-H aspects, --hash aspects
|
||||
show destination hashes for other aspects for this Identity
|
||||
-e path, --encrypt path
|
||||
encrypt file
|
||||
-d path, --decrypt path
|
||||
decrypt file
|
||||
-s path, --sign path sign file
|
||||
-V path, --validate path
|
||||
validate signature
|
||||
-r path, --read path input file path
|
||||
-w path, --write path
|
||||
output file path
|
||||
-H, --hash aspects show destination hashes for other aspects for this Identity
|
||||
-e, --encrypt file encrypt file
|
||||
-d, --decrypt file decrypt file
|
||||
-s, --sign path sign file
|
||||
-V, --validate path validate signature
|
||||
-r, --read file input file path
|
||||
-w, --write file output file path
|
||||
-f, --force write output even if it overwrites existing files
|
||||
-R, --request request unknown Identities from the network
|
||||
-t seconds identity request timeout before giving up
|
||||
-p, --print-identity print identity info and exit
|
||||
-P, --print-private allow displaying private keys
|
||||
-b, --base64 Use base64-encoded input and output
|
||||
-B, --base32 Use base32-encoded input and output
|
||||
--version show program's version number and exit
|
||||
|
||||
|
||||
|
|
@ -640,14 +640,18 @@ Or fetch a file from the remote system:
|
|||
-q, --quiet decrease verbosity
|
||||
-S, --silent disable transfer progress output
|
||||
-l, --listen listen for incoming transfer requests
|
||||
-C, --no-compress disable automatic compression
|
||||
-F, --allow-fetch allow authenticated clients to fetch files
|
||||
-f, --fetch fetch file from remote listener instead of sending
|
||||
-j path, --jail path restrict fetch requests to specified path
|
||||
-j, --jail path restrict fetch requests to specified path
|
||||
-s, --save path save received files in specified path
|
||||
-O, --overwrite Allow overwriting received files, instead of adding postfix
|
||||
-b seconds announce interval, 0 to only announce at startup
|
||||
-a allowed_hash allow this identity
|
||||
-a allowed_hash allow this identity (or add in ~/.rncp/allowed_identities)
|
||||
-n, --no-auth accept requests from anyone
|
||||
-p, --print-identity print identity and destination info and exit
|
||||
-w seconds sender timeout before giving up
|
||||
-P, --phy-rates display physical layer transfer rates
|
||||
--version show program's version number and exit
|
||||
|
||||
|
||||
|
|
@ -755,31 +759,36 @@ to create and provision new :ref:`RNodes<rnode-main>` from any supported hardwar
|
|||
-i, --info Show device info
|
||||
-a, --autoinstall Automatic installation on various supported devices
|
||||
-u, --update Update firmware to the latest version
|
||||
-U, --force-update Update to specified firmware even if version matches
|
||||
or is older than installed version
|
||||
--fw-version version Use a specific firmware version for update or
|
||||
autoinstall
|
||||
-U, --force-update Update to specified firmware even if version matches or is older than installed version
|
||||
--fw-version version Use a specific firmware version for update or autoinstall
|
||||
--fw-url url Use an alternate firmware download URL
|
||||
--nocheck Don't check for firmware updates online
|
||||
-e, --extract Extract firmware from connected RNode for later use
|
||||
-E, --use-extracted Use the extracted firmware for autoinstallation or
|
||||
update
|
||||
-E, --use-extracted Use the extracted firmware for autoinstallation or update
|
||||
-C, --clear-cache Clear locally cached firmware files
|
||||
--baud-flash baud_flash
|
||||
Set specific baud rate when flashing device. Default
|
||||
is 921600
|
||||
Set specific baud rate when flashing device. Default is 921600
|
||||
-N, --normal Switch device to normal mode
|
||||
-T, --tnc Switch device to TNC mode
|
||||
-b, --bluetooth-on Turn device bluetooth on
|
||||
-B, --bluetooth-off Turn device bluetooth off
|
||||
-p, --bluetooth-pair Put device into bluetooth pairing mode
|
||||
-D i, --display i Set display intensity (0-255)
|
||||
-D, --display i Set display intensity (0-255)
|
||||
-t, --timeout s Set display timeout in seconds, 0 to disable
|
||||
-R, --rotation rotation
|
||||
Set display rotation, valid values are 0 through 3
|
||||
--display-addr byte Set display address as hex byte (00 - FF)
|
||||
--recondition-display
|
||||
Start display reconditioning
|
||||
--np i Set NeoPixel intensity (0-255)
|
||||
--freq Hz Frequency in Hz for TNC mode
|
||||
--bw Hz Bandwidth in Hz for TNC mode
|
||||
--txp dBm TX power in dBm for TNC mode
|
||||
--sf factor Spreading factor for TNC mode (7 - 12)
|
||||
--cr rate Coding rate for TNC mode (5 - 8)
|
||||
-x, --ia-enable Enable interference avoidance
|
||||
-X, --ia-disable Disable interference avoidance
|
||||
-c, --config Print device configuration
|
||||
--eeprom-backup Backup EEPROM to file
|
||||
--eeprom-dump Dump EEPROM to console
|
||||
--eeprom-wipe Unlock and wipe EEPROM
|
||||
|
|
@ -790,8 +799,8 @@ to create and provision new :ref:`RNodes<rnode-main>` from any supported hardwar
|
|||
-r, --rom Bootstrap EEPROM without flashing firmware
|
||||
-k, --key Generate a new signing key and exit
|
||||
-S, --sign Display public part of signing key
|
||||
-H FIRMWARE_HASH, --firmware-hash FIRMWARE_HASH
|
||||
Display installed firmware hash
|
||||
-H, --firmware-hash FIRMWARE_HASH
|
||||
Set installed firmware hash
|
||||
--platform platform Platform specification for device bootstrap
|
||||
--product product Product specification for device bootstrap
|
||||
--model model Model code for device bootstrap
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue