mirror of
https://github.com/markqvist/Reticulum.git
synced 2024-11-22 13:40:19 +00:00
Updated documentation Getting Started section
This commit is contained in:
parent
2839d39350
commit
7ed0726feb
@ -7,16 +7,35 @@ you want to do. This guide will outline sensible starting paths for different
|
|||||||
scenarios.
|
scenarios.
|
||||||
|
|
||||||
|
|
||||||
|
Standalone Reticulum Installation
|
||||||
|
=============================================
|
||||||
|
If you simply want to install Reticulum and related utilities on a system,
|
||||||
|
the easiest way is via ``pip``:
|
||||||
|
|
||||||
|
.. code::
|
||||||
|
|
||||||
|
pip install rns
|
||||||
|
|
||||||
|
If you no not already have pip installed, you can install it using the package manager
|
||||||
|
of your system with a command like ``sudo apt install python3-pip``,
|
||||||
|
``sudo pamac install python-pip`` or similar. You can also dowload the Reticulum release
|
||||||
|
wheels from GitHub, or other release channels, and install them offline using ``pip``:
|
||||||
|
|
||||||
|
.. code::
|
||||||
|
|
||||||
|
pip install ./rns-0.4.6-py3-none-any.whl
|
||||||
|
|
||||||
|
|
||||||
Try Using a Reticulum-based Program
|
Try Using a Reticulum-based Program
|
||||||
=============================================
|
=============================================
|
||||||
|
|
||||||
If you simply want to try using a program built with Reticulum, a few different
|
If you simply want to try using a program built with Reticulum, a few different
|
||||||
programs exist that allow basic communication and a range of other useful functions
|
programs exist that allow basic communication and a range of other useful functions,
|
||||||
over even extremely low-bandwidth Reticulum networks.
|
even over extremely low-bandwidth Reticulum networks.
|
||||||
|
|
||||||
These programs will let you get a feel for how Reticulum works. They have been designed
|
These programs will let you get a feel for how Reticulum works. They have been designed
|
||||||
to run well over networks based on LoRa or packet radio, but can also be used completely
|
to run well over networks based on LoRa or packet radio, but can also be used over fast
|
||||||
over local WiFi, wired Ethernet, the Internet, or any combination.
|
links, such as local WiFi, wired Ethernet, the Internet, or any combination.
|
||||||
|
|
||||||
As such, it is easy to get started experimenting, without having to set up any radio
|
As such, it is easy to get started experimenting, without having to set up any radio
|
||||||
transceivers or infrastructure just to try it out. Launching the programs on separate
|
transceivers or infrastructure just to try it out. Launching the programs on separate
|
||||||
@ -44,7 +63,7 @@ You can install Nomad Network via pip:
|
|||||||
.. code::
|
.. code::
|
||||||
|
|
||||||
# Install ...
|
# Install ...
|
||||||
pip3 install nomadnet
|
pip install nomadnet
|
||||||
|
|
||||||
# ... and run
|
# ... and run
|
||||||
nomadnet
|
nomadnet
|
||||||
@ -61,12 +80,14 @@ If you would rather use a program with a graphical user interface, you can take
|
|||||||
a look at `Sideband <https://unsigned.io/sideband>`_, which is available for Android,
|
a look at `Sideband <https://unsigned.io/sideband>`_, which is available for Android,
|
||||||
Linux and macOS.
|
Linux and macOS.
|
||||||
|
|
||||||
.. image:: screenshots/sideband_1.png
|
.. image:: screenshots/sideband_devices.webp
|
||||||
:align: center
|
:align: center
|
||||||
:target: _images/sideband_1.png
|
:target: _images/sideband_devices.webp
|
||||||
|
|
||||||
Sideband is currently in the early stages of development, but already provides basic
|
Sideband allows you to communicate with other people or LXMF-compatible
|
||||||
communication features, and interoperates with Nomad Network, or any other LXMF client.
|
systems over Reticulum networks using LoRa, Packet Radio, WiFi, I2P, Encrypted QR
|
||||||
|
Paper Messages, or anything else Reticulum supports. It also interoperates with
|
||||||
|
the Nomad Network program.
|
||||||
|
|
||||||
Using the Included Utilities
|
Using the Included Utilities
|
||||||
=============================================
|
=============================================
|
||||||
@ -272,7 +293,7 @@ don't use pip, but try this recipe:
|
|||||||
|
|
||||||
# Run the example in client mode to "ping" the server.
|
# Run the example in client mode to "ping" the server.
|
||||||
# Replace the hash below with the actual destination hash of your server.
|
# Replace the hash below with the actual destination hash of your server.
|
||||||
python3 Examples/Echo.py 3e12fc71692f8ec47bc5
|
python3 Examples/Echo.py 174a64852a75682259ad8b921b8bf416
|
||||||
|
|
||||||
# Have a look at another example
|
# Have a look at another example
|
||||||
python3 Examples/Filetransfer.py -h
|
python3 Examples/Filetransfer.py -h
|
||||||
@ -287,7 +308,7 @@ or ask one of the developers or maintainers for a good place to start.
|
|||||||
Reticulum on ARM64
|
Reticulum on ARM64
|
||||||
==============================================
|
==============================================
|
||||||
On some architectures, including ARM64, not all dependencies have precompiled
|
On some architectures, including ARM64, not all dependencies have precompiled
|
||||||
binaries. On such systems, you will need to install ``python3-dev`` before
|
binaries. On such systems, you may need to install ``python3-dev`` before
|
||||||
installing Reticulum or programs that depend on Reticulum.
|
installing Reticulum or programs that depend on Reticulum.
|
||||||
|
|
||||||
.. code::
|
.. code::
|
||||||
@ -300,6 +321,12 @@ installing Reticulum or programs that depend on Reticulum.
|
|||||||
python3 -m pip install rns
|
python3 -m pip install rns
|
||||||
|
|
||||||
|
|
||||||
|
Reticulum on Raspberry Pi
|
||||||
|
==============================================
|
||||||
|
It is currently recommended to use a 64-bit version of the Raspberry Pi OS
|
||||||
|
if you want to run Reticulum on Raspberry Pi computers, since 32-bit versions
|
||||||
|
don't always have packages available for some dependencies.
|
||||||
|
|
||||||
Reticulum on Android
|
Reticulum on Android
|
||||||
==============================================
|
==============================================
|
||||||
Reticulum can be used on Android in different ways. The easiest way to get
|
Reticulum can be used on Android in different ways. The easiest way to get
|
||||||
@ -313,12 +340,31 @@ Termux is a terminal emulator and Linux environment for Android based devices,
|
|||||||
which includes the ability to use many different programs and libraries,
|
which includes the ability to use many different programs and libraries,
|
||||||
including Reticulum.
|
including Reticulum.
|
||||||
|
|
||||||
Since the Python cryptography.io module does not offer pre-built wheels for
|
To use Reticulum within the Termux environment, you will need to install
|
||||||
Android, the standard one-line install of Reticulum does not work on Android,
|
``python`` and the ``python-cryptography`` library using ``pkg``, the package-manager
|
||||||
and a few extra commands are required.
|
build into Termux. After that, you can use ``pip`` to install Reticulum.
|
||||||
|
|
||||||
From within Termux, execute the following:
|
From within Termux, execute the following:
|
||||||
|
|
||||||
|
.. code::
|
||||||
|
|
||||||
|
# First, make sure indexes and packages are up to date.
|
||||||
|
pkg update
|
||||||
|
pkg upgrade
|
||||||
|
|
||||||
|
# Then install python and the cryptography library.
|
||||||
|
pkg install python python-cryptography
|
||||||
|
|
||||||
|
# Make sure pip is up to date, and install the wheel module.
|
||||||
|
pip install wheel pip --upgrade
|
||||||
|
|
||||||
|
# Install Reticulum
|
||||||
|
pip install rns
|
||||||
|
|
||||||
|
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::
|
||||||
|
|
||||||
# First, make sure indexes and packages are up to date.
|
# First, make sure indexes and packages are up to date.
|
||||||
@ -329,7 +375,7 @@ From within Termux, execute the following:
|
|||||||
pkg install python build-essential openssl libffi rust
|
pkg install python build-essential openssl libffi rust
|
||||||
|
|
||||||
# Make sure pip is up to date, and install the wheel module.
|
# Make sure pip is up to date, and install the wheel module.
|
||||||
pip3 install wheel pip --upgrade
|
pip install wheel pip --upgrade
|
||||||
|
|
||||||
# To allow the installer to build the cryptography module,
|
# To allow the installer to build the cryptography module,
|
||||||
# we need to let it know what platform we are compiling for:
|
# we need to let it know what platform we are compiling for:
|
||||||
@ -338,11 +384,11 @@ From within Termux, execute the following:
|
|||||||
# Start the install process for the cryptography module.
|
# Start the install process for the cryptography module.
|
||||||
# Depending on your device, this can take several minutes,
|
# Depending on your device, this can take several minutes,
|
||||||
# since the module must be compiled locally on your device.
|
# since the module must be compiled locally on your device.
|
||||||
pip3 install cryptography
|
pip install cryptography
|
||||||
|
|
||||||
# If the above installation succeeds, you can now install
|
# If the above installation succeeds, you can now install
|
||||||
# Reticulum and any related software
|
# Reticulum and any related software
|
||||||
pip3 install rns
|
pip install rns
|
||||||
|
|
||||||
It is also possible to include Reticulum in apps compiled and distributed as
|
It is also possible to include Reticulum in apps compiled and distributed as
|
||||||
Android APKs. A detailed tutorial and example source code will be included
|
Android APKs. A detailed tutorial and example source code will be included
|
||||||
|
@ -166,7 +166,7 @@ then install Reticulum with with ``pip``:
|
|||||||
|
|
||||||
.. code::
|
.. code::
|
||||||
|
|
||||||
pip3 install rns
|
pip install rns
|
||||||
|
|
||||||
Once installation has completed, it is time to start installing the firmware on your
|
Once installation has completed, it is time to start installing the firmware on your
|
||||||
devices. Run ``rnodeconf`` in auto-install mode like so:
|
devices. Run ``rnodeconf`` in auto-install mode like so:
|
||||||
|
@ -5,7 +5,9 @@ Using Reticulum on Your System
|
|||||||
******************************
|
******************************
|
||||||
|
|
||||||
Reticulum is not installed as a driver or kernel module, as one might expect
|
Reticulum is not installed as a driver or kernel module, as one might expect
|
||||||
of a networking stack. Instead, Reticulum is distributed as a Python module.
|
of a networking stack. Instead, Reticulum is distributed as a Python module,
|
||||||
|
containing the networking core, and a set of utility and daemon programs.
|
||||||
|
|
||||||
This means that no special privileges are required to install or use it. It
|
This means that no special privileges are required to install or use it. It
|
||||||
is also very light-weight, and easy to transfer to, and install on new systems.
|
is also very light-weight, and easy to transfer to, and install on new systems.
|
||||||
|
|
||||||
@ -16,8 +18,8 @@ already running.
|
|||||||
In many cases, this approach is sufficient. When any program needs to use
|
In many cases, this approach is sufficient. When any program needs to use
|
||||||
Reticulum, it is loaded, initialised, interfaces are brought up, and the
|
Reticulum, it is loaded, initialised, interfaces are brought up, and the
|
||||||
program can now communicate over any Reticulum networks available. If another
|
program can now communicate over any Reticulum networks available. If another
|
||||||
program starts up and also wants access to the same Reticulum network, the
|
program starts up and also wants access to the same Reticulum network, the already
|
||||||
instance is simply shared. This works for any number of programs running
|
running instance is simply shared. This works for any number of programs running
|
||||||
concurrently, and is very easy to use, but depending on your use case, there
|
concurrently, and is very easy to use, but depending on your use case, there
|
||||||
are other options.
|
are other options.
|
||||||
|
|
||||||
@ -425,6 +427,48 @@ You can specify as many allowed senders as needed, or completely disable authent
|
|||||||
--version show program's version number and exit
|
--version show program's version number and exit
|
||||||
|
|
||||||
|
|
||||||
|
The rnodeconf Utility
|
||||||
|
=====================
|
||||||
|
|
||||||
|
The ``rnodeconf`` utility allows you to inspect and configure existing :ref:`RNodes<rnode-main>`, and
|
||||||
|
to create and provision new :ref:`RNodes<rnode-main>` from any supported hardware devices.
|
||||||
|
|
||||||
|
.. code:: text
|
||||||
|
|
||||||
|
usage: rnodeconf [-h] [-i] [-a] [-u] [-U] [--fw-version version] [--nocheck] [-C] [-N] [-T] [-b] [-B] [-p] [--freq Hz] [--bw Hz] [--txp dBm] [--sf factor] [--cr rate] [--eeprom-backup] [--eeprom-dump] [--eeprom-wipe] [--version] [port]
|
||||||
|
|
||||||
|
RNode Configuration and firmware utility. This program allows you to change various settings and startup modes of RNode. It can also install, flash and update the firmware on supported devices.
|
||||||
|
|
||||||
|
positional arguments:
|
||||||
|
port serial port where RNode is attached
|
||||||
|
|
||||||
|
options:
|
||||||
|
-h, --help show this help message and exit
|
||||||
|
-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
|
||||||
|
--nocheck Don't check for firmware updates online
|
||||||
|
-C, --clear-cache Clear locally cached firmware files
|
||||||
|
-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
|
||||||
|
--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)
|
||||||
|
--eeprom-backup Backup EEPROM to file
|
||||||
|
--eeprom-dump Dump EEPROM to console
|
||||||
|
--eeprom-wipe Unlock and wipe EEPROM
|
||||||
|
--version Print program version and exit
|
||||||
|
|
||||||
|
For more information on how to create your own RNodes, please read the :ref:`Creating RNodes<rnode-creating>`
|
||||||
|
section of this manual.
|
||||||
|
|
||||||
Improving System Configuration
|
Improving System Configuration
|
||||||
------------------------------
|
------------------------------
|
||||||
|
|
||||||
|
@ -226,14 +226,29 @@
|
|||||||
<p>The best way to get started with the Reticulum Network Stack depends on what
|
<p>The best way to get started with the Reticulum Network Stack depends on what
|
||||||
you want to do. This guide will outline sensible starting paths for different
|
you want to do. This guide will outline sensible starting paths for different
|
||||||
scenarios.</p>
|
scenarios.</p>
|
||||||
|
<section id="standalone-reticulum-installation">
|
||||||
|
<h2>Standalone Reticulum Installation<a class="headerlink" href="#standalone-reticulum-installation" title="Permalink to this heading">#</a></h2>
|
||||||
|
<p>If you simply want to install Reticulum and related utilities on a system,
|
||||||
|
the easiest way is via <code class="docutils literal notranslate"><span class="pre">pip</span></code>:</p>
|
||||||
|
<div class="highlight-default notranslate"><div class="highlight"><pre><span></span><span class="n">pip</span> <span class="n">install</span> <span class="n">rns</span>
|
||||||
|
</pre></div>
|
||||||
|
</div>
|
||||||
|
<p>If you no not already have pip installed, you can install it using the package manager
|
||||||
|
of your system with a command like <code class="docutils literal notranslate"><span class="pre">sudo</span> <span class="pre">apt</span> <span class="pre">install</span> <span class="pre">python3-pip</span></code>,
|
||||||
|
<code class="docutils literal notranslate"><span class="pre">sudo</span> <span class="pre">pamac</span> <span class="pre">install</span> <span class="pre">python-pip</span></code> or similar. You can also dowload the Reticulum release
|
||||||
|
wheels from GitHub, or other release channels, and install them offline using <code class="docutils literal notranslate"><span class="pre">pip</span></code>:</p>
|
||||||
|
<div class="highlight-default notranslate"><div class="highlight"><pre><span></span><span class="n">pip</span> <span class="n">install</span> <span class="o">./</span><span class="n">rns</span><span class="o">-</span><span class="mf">0.4.6</span><span class="o">-</span><span class="n">py3</span><span class="o">-</span><span class="n">none</span><span class="o">-</span><span class="nb">any</span><span class="o">.</span><span class="n">whl</span>
|
||||||
|
</pre></div>
|
||||||
|
</div>
|
||||||
|
</section>
|
||||||
<section id="try-using-a-reticulum-based-program">
|
<section id="try-using-a-reticulum-based-program">
|
||||||
<h2>Try Using a Reticulum-based Program<a class="headerlink" href="#try-using-a-reticulum-based-program" title="Permalink to this heading">#</a></h2>
|
<h2>Try Using a Reticulum-based Program<a class="headerlink" href="#try-using-a-reticulum-based-program" title="Permalink to this heading">#</a></h2>
|
||||||
<p>If you simply want to try using a program built with Reticulum, a few different
|
<p>If you simply want to try using a program built with Reticulum, a few different
|
||||||
programs exist that allow basic communication and a range of other useful functions
|
programs exist that allow basic communication and a range of other useful functions,
|
||||||
over even extremely low-bandwidth Reticulum networks.</p>
|
even over extremely low-bandwidth Reticulum networks.</p>
|
||||||
<p>These programs will let you get a feel for how Reticulum works. They have been designed
|
<p>These programs will let you get a feel for how Reticulum works. They have been designed
|
||||||
to run well over networks based on LoRa or packet radio, but can also be used completely
|
to run well over networks based on LoRa or packet radio, but can also be used over fast
|
||||||
over local WiFi, wired Ethernet, the Internet, or any combination.</p>
|
links, such as local WiFi, wired Ethernet, the Internet, or any combination.</p>
|
||||||
<p>As such, it is easy to get started experimenting, without having to set up any radio
|
<p>As such, it is easy to get started experimenting, without having to set up any radio
|
||||||
transceivers or infrastructure just to try it out. Launching the programs on separate
|
transceivers or infrastructure just to try it out. Launching the programs on separate
|
||||||
devices connected to the same WiFi network is enough to get started, and physical
|
devices connected to the same WiFi network is enough to get started, and physical
|
||||||
@ -251,7 +266,7 @@ for the messaging and information-sharing protocol
|
|||||||
<a class="reference external" href="https://github.com/markqvist/lxmf">LXMF</a>, another project built with Reticulum.</p>
|
<a class="reference external" href="https://github.com/markqvist/lxmf">LXMF</a>, another project built with Reticulum.</p>
|
||||||
<p>You can install Nomad Network via pip:</p>
|
<p>You can install Nomad Network via pip:</p>
|
||||||
<div class="highlight-default notranslate"><div class="highlight"><pre><span></span><span class="c1"># Install ...</span>
|
<div class="highlight-default notranslate"><div class="highlight"><pre><span></span><span class="c1"># Install ...</span>
|
||||||
<span class="n">pip3</span> <span class="n">install</span> <span class="n">nomadnet</span>
|
<span class="n">pip</span> <span class="n">install</span> <span class="n">nomadnet</span>
|
||||||
|
|
||||||
<span class="c1"># ... and run</span>
|
<span class="c1"># ... and run</span>
|
||||||
<span class="n">nomadnet</span>
|
<span class="n">nomadnet</span>
|
||||||
@ -267,9 +282,11 @@ program, reboot your system and try again.</p>
|
|||||||
<p>If you would rather use a program with a graphical user interface, you can take
|
<p>If you would rather use a program with a graphical user interface, you can take
|
||||||
a look at <a class="reference external" href="https://unsigned.io/sideband">Sideband</a>, which is available for Android,
|
a look at <a class="reference external" href="https://unsigned.io/sideband">Sideband</a>, which is available for Android,
|
||||||
Linux and macOS.</p>
|
Linux and macOS.</p>
|
||||||
<a class="reference external image-reference" href="_images/sideband_1.png"><img alt="_images/sideband_1.png" class="align-center" src="_images/sideband_1.png" /></a>
|
<a class="reference external image-reference" href="_images/sideband_devices.webp"><img alt="_images/sideband_devices.webp" class="align-center" src="_images/sideband_devices.webp" /></a>
|
||||||
<p>Sideband is currently in the early stages of development, but already provides basic
|
<p>Sideband allows you to communicate with other people or LXMF-compatible
|
||||||
communication features, and interoperates with Nomad Network, or any other LXMF client.</p>
|
systems over Reticulum networks using LoRa, Packet Radio, WiFi, I2P, Encrypted QR
|
||||||
|
Paper Messages, or anything else Reticulum supports. It also interoperates with
|
||||||
|
the Nomad Network program.</p>
|
||||||
</section>
|
</section>
|
||||||
</section>
|
</section>
|
||||||
<section id="using-the-included-utilities">
|
<section id="using-the-included-utilities">
|
||||||
@ -443,7 +460,7 @@ don’t use pip, but try this recipe:</p>
|
|||||||
|
|
||||||
<span class="c1"># Run the example in client mode to "ping" the server.</span>
|
<span class="c1"># Run the example in client mode to "ping" the server.</span>
|
||||||
<span class="c1"># Replace the hash below with the actual destination hash of your server.</span>
|
<span class="c1"># Replace the hash below with the actual destination hash of your server.</span>
|
||||||
<span class="n">python3</span> <span class="n">Examples</span><span class="o">/</span><span class="n">Echo</span><span class="o">.</span><span class="n">py</span> <span class="mf">3e12</span><span class="n">fc71692f8ec47bc5</span>
|
<span class="n">python3</span> <span class="n">Examples</span><span class="o">/</span><span class="n">Echo</span><span class="o">.</span><span class="n">py</span> <span class="mi">174</span><span class="n">a64852a75682259ad8b921b8bf416</span>
|
||||||
|
|
||||||
<span class="c1"># Have a look at another example</span>
|
<span class="c1"># Have a look at another example</span>
|
||||||
<span class="n">python3</span> <span class="n">Examples</span><span class="o">/</span><span class="n">Filetransfer</span><span class="o">.</span><span class="n">py</span> <span class="o">-</span><span class="n">h</span>
|
<span class="n">python3</span> <span class="n">Examples</span><span class="o">/</span><span class="n">Filetransfer</span><span class="o">.</span><span class="n">py</span> <span class="o">-</span><span class="n">h</span>
|
||||||
@ -458,7 +475,7 @@ or ask one of the developers or maintainers for a good place to start.</p>
|
|||||||
<section id="reticulum-on-arm64">
|
<section id="reticulum-on-arm64">
|
||||||
<h2>Reticulum on ARM64<a class="headerlink" href="#reticulum-on-arm64" title="Permalink to this heading">#</a></h2>
|
<h2>Reticulum on ARM64<a class="headerlink" href="#reticulum-on-arm64" title="Permalink to this heading">#</a></h2>
|
||||||
<p>On some architectures, including ARM64, not all dependencies have precompiled
|
<p>On some architectures, including ARM64, not all dependencies have precompiled
|
||||||
binaries. On such systems, you will need to install <code class="docutils literal notranslate"><span class="pre">python3-dev</span></code> before
|
binaries. On such systems, you may need to install <code class="docutils literal notranslate"><span class="pre">python3-dev</span></code> before
|
||||||
installing Reticulum or programs that depend on Reticulum.</p>
|
installing Reticulum or programs that depend on Reticulum.</p>
|
||||||
<div class="highlight-default notranslate"><div class="highlight"><pre><span></span><span class="c1"># Install Python and development packages</span>
|
<div class="highlight-default notranslate"><div class="highlight"><pre><span></span><span class="c1"># Install Python and development packages</span>
|
||||||
<span class="n">sudo</span> <span class="n">apt</span> <span class="n">update</span>
|
<span class="n">sudo</span> <span class="n">apt</span> <span class="n">update</span>
|
||||||
@ -469,6 +486,12 @@ installing Reticulum or programs that depend on Reticulum.</p>
|
|||||||
</pre></div>
|
</pre></div>
|
||||||
</div>
|
</div>
|
||||||
</section>
|
</section>
|
||||||
|
<section id="reticulum-on-raspberry-pi">
|
||||||
|
<h2>Reticulum on Raspberry Pi<a class="headerlink" href="#reticulum-on-raspberry-pi" title="Permalink to this heading">#</a></h2>
|
||||||
|
<p>It is currently recommended to use a 64-bit version of the Raspberry Pi OS
|
||||||
|
if you want to run Reticulum on Raspberry Pi computers, since 32-bit versions
|
||||||
|
don’t always have packages available for some dependencies.</p>
|
||||||
|
</section>
|
||||||
<section id="reticulum-on-android">
|
<section id="reticulum-on-android">
|
||||||
<h2>Reticulum on Android<a class="headerlink" href="#reticulum-on-android" title="Permalink to this heading">#</a></h2>
|
<h2>Reticulum on Android<a class="headerlink" href="#reticulum-on-android" title="Permalink to this heading">#</a></h2>
|
||||||
<p>Reticulum can be used on Android in different ways. The easiest way to get
|
<p>Reticulum can be used on Android in different ways. The easiest way to get
|
||||||
@ -479,19 +502,36 @@ the <a class="reference external" href="https://termux.com/">Termux app</a>, at
|
|||||||
<p>Termux is a terminal emulator and Linux environment for Android based devices,
|
<p>Termux is a terminal emulator and Linux environment for Android based devices,
|
||||||
which includes the ability to use many different programs and libraries,
|
which includes the ability to use many different programs and libraries,
|
||||||
including Reticulum.</p>
|
including Reticulum.</p>
|
||||||
<p>Since the Python cryptography.io module does not offer pre-built wheels for
|
<p>To use Reticulum within the Termux environment, you will need to install
|
||||||
Android, the standard one-line install of Reticulum does not work on Android,
|
<code class="docutils literal notranslate"><span class="pre">python</span></code> and the <code class="docutils literal notranslate"><span class="pre">python-cryptography</span></code> library using <code class="docutils literal notranslate"><span class="pre">pkg</span></code>, the package-manager
|
||||||
and a few extra commands are required.</p>
|
build into Termux. After that, you can use <code class="docutils literal notranslate"><span class="pre">pip</span></code> to install Reticulum.</p>
|
||||||
<p>From within Termux, execute the following:</p>
|
<p>From within Termux, execute the following:</p>
|
||||||
<div class="highlight-default notranslate"><div class="highlight"><pre><span></span><span class="c1"># First, make sure indexes and packages are up to date.</span>
|
<div class="highlight-default notranslate"><div class="highlight"><pre><span></span><span class="c1"># First, make sure indexes and packages are up to date.</span>
|
||||||
<span class="n">pkg</span> <span class="n">update</span>
|
<span class="n">pkg</span> <span class="n">update</span>
|
||||||
<span class="n">pkg</span> <span class="n">upgrade</span>
|
<span class="n">pkg</span> <span class="n">upgrade</span>
|
||||||
|
|
||||||
|
<span class="c1"># Then install python and the cryptography library.</span>
|
||||||
|
<span class="n">pkg</span> <span class="n">install</span> <span class="n">python</span> <span class="n">python</span><span class="o">-</span><span class="n">cryptography</span>
|
||||||
|
|
||||||
|
<span class="c1"># Make sure pip is up to date, and install the wheel module.</span>
|
||||||
|
<span class="n">pip</span> <span class="n">install</span> <span class="n">wheel</span> <span class="n">pip</span> <span class="o">--</span><span class="n">upgrade</span>
|
||||||
|
|
||||||
|
<span class="c1"># Install Reticulum</span>
|
||||||
|
<span class="n">pip</span> <span class="n">install</span> <span class="n">rns</span>
|
||||||
|
</pre></div>
|
||||||
|
</div>
|
||||||
|
<p>If for some reason the <code class="docutils literal notranslate"><span class="pre">python-cryptography</span></code> 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:</p>
|
||||||
|
<div class="highlight-default notranslate"><div class="highlight"><pre><span></span><span class="c1"># First, make sure indexes and packages are up to date.</span>
|
||||||
|
<span class="n">pkg</span> <span class="n">update</span>
|
||||||
|
<span class="n">pkg</span> <span class="n">upgrade</span>
|
||||||
|
|
||||||
<span class="c1"># Then install dependencies for the cryptography library.</span>
|
<span class="c1"># Then install dependencies for the cryptography library.</span>
|
||||||
<span class="n">pkg</span> <span class="n">install</span> <span class="n">python</span> <span class="n">build</span><span class="o">-</span><span class="n">essential</span> <span class="n">openssl</span> <span class="n">libffi</span> <span class="n">rust</span>
|
<span class="n">pkg</span> <span class="n">install</span> <span class="n">python</span> <span class="n">build</span><span class="o">-</span><span class="n">essential</span> <span class="n">openssl</span> <span class="n">libffi</span> <span class="n">rust</span>
|
||||||
|
|
||||||
<span class="c1"># Make sure pip is up to date, and install the wheel module.</span>
|
<span class="c1"># Make sure pip is up to date, and install the wheel module.</span>
|
||||||
<span class="n">pip3</span> <span class="n">install</span> <span class="n">wheel</span> <span class="n">pip</span> <span class="o">--</span><span class="n">upgrade</span>
|
<span class="n">pip</span> <span class="n">install</span> <span class="n">wheel</span> <span class="n">pip</span> <span class="o">--</span><span class="n">upgrade</span>
|
||||||
|
|
||||||
<span class="c1"># To allow the installer to build the cryptography module,</span>
|
<span class="c1"># To allow the installer to build the cryptography module,</span>
|
||||||
<span class="c1"># we need to let it know what platform we are compiling for:</span>
|
<span class="c1"># we need to let it know what platform we are compiling for:</span>
|
||||||
@ -500,11 +540,11 @@ and a few extra commands are required.</p>
|
|||||||
<span class="c1"># Start the install process for the cryptography module.</span>
|
<span class="c1"># Start the install process for the cryptography module.</span>
|
||||||
<span class="c1"># Depending on your device, this can take several minutes,</span>
|
<span class="c1"># Depending on your device, this can take several minutes,</span>
|
||||||
<span class="c1"># since the module must be compiled locally on your device.</span>
|
<span class="c1"># since the module must be compiled locally on your device.</span>
|
||||||
<span class="n">pip3</span> <span class="n">install</span> <span class="n">cryptography</span>
|
<span class="n">pip</span> <span class="n">install</span> <span class="n">cryptography</span>
|
||||||
|
|
||||||
<span class="c1"># If the above installation succeeds, you can now install</span>
|
<span class="c1"># If the above installation succeeds, you can now install</span>
|
||||||
<span class="c1"># Reticulum and any related software</span>
|
<span class="c1"># Reticulum and any related software</span>
|
||||||
<span class="n">pip3</span> <span class="n">install</span> <span class="n">rns</span>
|
<span class="n">pip</span> <span class="n">install</span> <span class="n">rns</span>
|
||||||
</pre></div>
|
</pre></div>
|
||||||
</div>
|
</div>
|
||||||
<p>It is also possible to include Reticulum in apps compiled and distributed as
|
<p>It is also possible to include Reticulum in apps compiled and distributed as
|
||||||
@ -591,6 +631,7 @@ section of this manual.</p>
|
|||||||
<div class="toc-tree">
|
<div class="toc-tree">
|
||||||
<ul>
|
<ul>
|
||||||
<li><a class="reference internal" href="#">Getting Started Fast</a><ul>
|
<li><a class="reference internal" href="#">Getting Started Fast</a><ul>
|
||||||
|
<li><a class="reference internal" href="#standalone-reticulum-installation">Standalone Reticulum Installation</a></li>
|
||||||
<li><a class="reference internal" href="#try-using-a-reticulum-based-program">Try Using a Reticulum-based Program</a><ul>
|
<li><a class="reference internal" href="#try-using-a-reticulum-based-program">Try Using a Reticulum-based Program</a><ul>
|
||||||
<li><a class="reference internal" href="#nomad-network">Nomad Network</a></li>
|
<li><a class="reference internal" href="#nomad-network">Nomad Network</a></li>
|
||||||
<li><a class="reference internal" href="#sideband">Sideband</a></li>
|
<li><a class="reference internal" href="#sideband">Sideband</a></li>
|
||||||
@ -604,6 +645,7 @@ section of this manual.</p>
|
|||||||
<li><a class="reference internal" href="#develop-a-program-with-reticulum">Develop a Program with Reticulum</a></li>
|
<li><a class="reference internal" href="#develop-a-program-with-reticulum">Develop a Program with Reticulum</a></li>
|
||||||
<li><a class="reference internal" href="#participate-in-reticulum-development">Participate in Reticulum Development</a></li>
|
<li><a class="reference internal" href="#participate-in-reticulum-development">Participate in Reticulum Development</a></li>
|
||||||
<li><a class="reference internal" href="#reticulum-on-arm64">Reticulum on ARM64</a></li>
|
<li><a class="reference internal" href="#reticulum-on-arm64">Reticulum on ARM64</a></li>
|
||||||
|
<li><a class="reference internal" href="#reticulum-on-raspberry-pi">Reticulum on Raspberry Pi</a></li>
|
||||||
<li><a class="reference internal" href="#reticulum-on-android">Reticulum on Android</a></li>
|
<li><a class="reference internal" href="#reticulum-on-android">Reticulum on Android</a></li>
|
||||||
<li><a class="reference internal" href="#pure-python-reticulum">Pure-Python Reticulum</a></li>
|
<li><a class="reference internal" href="#pure-python-reticulum">Pure-Python Reticulum</a></li>
|
||||||
</ul>
|
</ul>
|
||||||
|
@ -352,7 +352,7 @@ using the <a class="reference external" href="https://github.com/markqvist/rnode
|
|||||||
If you have installed Reticulum on your system, the <code class="docutils literal notranslate"><span class="pre">rnodeconf</span></code> program will already be
|
If you have installed Reticulum on your system, the <code class="docutils literal notranslate"><span class="pre">rnodeconf</span></code> program will already be
|
||||||
available. If not, make sure that <code class="docutils literal notranslate"><span class="pre">Python3</span></code> and <code class="docutils literal notranslate"><span class="pre">pip</span></code> is installed on your system, and
|
available. If not, make sure that <code class="docutils literal notranslate"><span class="pre">Python3</span></code> and <code class="docutils literal notranslate"><span class="pre">pip</span></code> is installed on your system, and
|
||||||
then install Reticulum with with <code class="docutils literal notranslate"><span class="pre">pip</span></code>:</p>
|
then install Reticulum with with <code class="docutils literal notranslate"><span class="pre">pip</span></code>:</p>
|
||||||
<div class="highlight-default notranslate"><div class="highlight"><pre><span></span><span class="n">pip3</span> <span class="n">install</span> <span class="n">rns</span>
|
<div class="highlight-default notranslate"><div class="highlight"><pre><span></span><span class="n">pip</span> <span class="n">install</span> <span class="n">rns</span>
|
||||||
</pre></div>
|
</pre></div>
|
||||||
</div>
|
</div>
|
||||||
<p>Once installation has completed, it is time to start installing the firmware on your
|
<p>Once installation has completed, it is time to start installing the firmware on your
|
||||||
|
@ -240,6 +240,7 @@ to participate in the development of Reticulum itself.</p>
|
|||||||
</ul>
|
</ul>
|
||||||
</li>
|
</li>
|
||||||
<li class="toctree-l1"><a class="reference internal" href="gettingstartedfast.html">Getting Started Fast</a><ul>
|
<li class="toctree-l1"><a class="reference internal" href="gettingstartedfast.html">Getting Started Fast</a><ul>
|
||||||
|
<li class="toctree-l2"><a class="reference internal" href="gettingstartedfast.html#standalone-reticulum-installation">Standalone Reticulum Installation</a></li>
|
||||||
<li class="toctree-l2"><a class="reference internal" href="gettingstartedfast.html#try-using-a-reticulum-based-program">Try Using a Reticulum-based Program</a><ul>
|
<li class="toctree-l2"><a class="reference internal" href="gettingstartedfast.html#try-using-a-reticulum-based-program">Try Using a Reticulum-based Program</a><ul>
|
||||||
<li class="toctree-l3"><a class="reference internal" href="gettingstartedfast.html#nomad-network">Nomad Network</a></li>
|
<li class="toctree-l3"><a class="reference internal" href="gettingstartedfast.html#nomad-network">Nomad Network</a></li>
|
||||||
<li class="toctree-l3"><a class="reference internal" href="gettingstartedfast.html#sideband">Sideband</a></li>
|
<li class="toctree-l3"><a class="reference internal" href="gettingstartedfast.html#sideband">Sideband</a></li>
|
||||||
@ -253,6 +254,7 @@ to participate in the development of Reticulum itself.</p>
|
|||||||
<li class="toctree-l2"><a class="reference internal" href="gettingstartedfast.html#develop-a-program-with-reticulum">Develop a Program with Reticulum</a></li>
|
<li class="toctree-l2"><a class="reference internal" href="gettingstartedfast.html#develop-a-program-with-reticulum">Develop a Program with Reticulum</a></li>
|
||||||
<li class="toctree-l2"><a class="reference internal" href="gettingstartedfast.html#participate-in-reticulum-development">Participate in Reticulum Development</a></li>
|
<li class="toctree-l2"><a class="reference internal" href="gettingstartedfast.html#participate-in-reticulum-development">Participate in Reticulum Development</a></li>
|
||||||
<li class="toctree-l2"><a class="reference internal" href="gettingstartedfast.html#reticulum-on-arm64">Reticulum on ARM64</a></li>
|
<li class="toctree-l2"><a class="reference internal" href="gettingstartedfast.html#reticulum-on-arm64">Reticulum on ARM64</a></li>
|
||||||
|
<li class="toctree-l2"><a class="reference internal" href="gettingstartedfast.html#reticulum-on-raspberry-pi">Reticulum on Raspberry Pi</a></li>
|
||||||
<li class="toctree-l2"><a class="reference internal" href="gettingstartedfast.html#reticulum-on-android">Reticulum on Android</a></li>
|
<li class="toctree-l2"><a class="reference internal" href="gettingstartedfast.html#reticulum-on-android">Reticulum on Android</a></li>
|
||||||
<li class="toctree-l2"><a class="reference internal" href="gettingstartedfast.html#pure-python-reticulum">Pure-Python Reticulum</a></li>
|
<li class="toctree-l2"><a class="reference internal" href="gettingstartedfast.html#pure-python-reticulum">Pure-Python Reticulum</a></li>
|
||||||
</ul>
|
</ul>
|
||||||
@ -266,6 +268,7 @@ to participate in the development of Reticulum itself.</p>
|
|||||||
<li class="toctree-l3"><a class="reference internal" href="using.html#the-rnprobe-utility">The rnprobe Utility</a></li>
|
<li class="toctree-l3"><a class="reference internal" href="using.html#the-rnprobe-utility">The rnprobe Utility</a></li>
|
||||||
<li class="toctree-l3"><a class="reference internal" href="using.html#the-rncp-utility">The rncp Utility</a></li>
|
<li class="toctree-l3"><a class="reference internal" href="using.html#the-rncp-utility">The rncp Utility</a></li>
|
||||||
<li class="toctree-l3"><a class="reference internal" href="using.html#the-rnx-utility">The rnx Utility</a></li>
|
<li class="toctree-l3"><a class="reference internal" href="using.html#the-rnx-utility">The rnx Utility</a></li>
|
||||||
|
<li class="toctree-l3"><a class="reference internal" href="using.html#the-rnodeconf-utility">The rnodeconf Utility</a></li>
|
||||||
</ul>
|
</ul>
|
||||||
</li>
|
</li>
|
||||||
<li class="toctree-l2"><a class="reference internal" href="using.html#improving-system-configuration">Improving System Configuration</a><ul>
|
<li class="toctree-l2"><a class="reference internal" href="using.html#improving-system-configuration">Improving System Configuration</a><ul>
|
||||||
|
File diff suppressed because one or more lines are too long
@ -224,8 +224,9 @@
|
|||||||
<section id="using-reticulum-on-your-system">
|
<section id="using-reticulum-on-your-system">
|
||||||
<span id="using-main"></span><h1>Using Reticulum on Your System<a class="headerlink" href="#using-reticulum-on-your-system" title="Permalink to this heading">#</a></h1>
|
<span id="using-main"></span><h1>Using Reticulum on Your System<a class="headerlink" href="#using-reticulum-on-your-system" title="Permalink to this heading">#</a></h1>
|
||||||
<p>Reticulum is not installed as a driver or kernel module, as one might expect
|
<p>Reticulum is not installed as a driver or kernel module, as one might expect
|
||||||
of a networking stack. Instead, Reticulum is distributed as a Python module.
|
of a networking stack. Instead, Reticulum is distributed as a Python module,
|
||||||
This means that no special privileges are required to install or use it. It
|
containing the networking core, and a set of utility and daemon programs.</p>
|
||||||
|
<p>This means that no special privileges are required to install or use it. It
|
||||||
is also very light-weight, and easy to transfer to, and install on new systems.</p>
|
is also very light-weight, and easy to transfer to, and install on new systems.</p>
|
||||||
<p>When you have Reticulum installed, any program or application that uses Reticulum
|
<p>When you have Reticulum installed, any program or application that uses Reticulum
|
||||||
will automatically load and initialise Reticulum when it starts, if it is not
|
will automatically load and initialise Reticulum when it starts, if it is not
|
||||||
@ -233,8 +234,8 @@ already running.</p>
|
|||||||
<p>In many cases, this approach is sufficient. When any program needs to use
|
<p>In many cases, this approach is sufficient. When any program needs to use
|
||||||
Reticulum, it is loaded, initialised, interfaces are brought up, and the
|
Reticulum, it is loaded, initialised, interfaces are brought up, and the
|
||||||
program can now communicate over any Reticulum networks available. If another
|
program can now communicate over any Reticulum networks available. If another
|
||||||
program starts up and also wants access to the same Reticulum network, the
|
program starts up and also wants access to the same Reticulum network, the already
|
||||||
instance is simply shared. This works for any number of programs running
|
running instance is simply shared. This works for any number of programs running
|
||||||
concurrently, and is very easy to use, but depending on your use case, there
|
concurrently, and is very easy to use, but depending on your use case, there
|
||||||
are other options.</p>
|
are other options.</p>
|
||||||
<section id="configuration-data">
|
<section id="configuration-data">
|
||||||
@ -605,6 +606,45 @@ optional arguments:
|
|||||||
</pre></div>
|
</pre></div>
|
||||||
</div>
|
</div>
|
||||||
</section>
|
</section>
|
||||||
|
<section id="the-rnodeconf-utility">
|
||||||
|
<h3>The rnodeconf Utility<a class="headerlink" href="#the-rnodeconf-utility" title="Permalink to this heading">#</a></h3>
|
||||||
|
<p>The <code class="docutils literal notranslate"><span class="pre">rnodeconf</span></code> utility allows you to inspect and configure existing <a class="reference internal" href="hardware.html#rnode-main"><span class="std std-ref">RNodes</span></a>, and
|
||||||
|
to create and provision new <a class="reference internal" href="hardware.html#rnode-main"><span class="std std-ref">RNodes</span></a> from any supported hardware devices.</p>
|
||||||
|
<div class="highlight-text notranslate"><div class="highlight"><pre><span></span>usage: rnodeconf [-h] [-i] [-a] [-u] [-U] [--fw-version version] [--nocheck] [-C] [-N] [-T] [-b] [-B] [-p] [--freq Hz] [--bw Hz] [--txp dBm] [--sf factor] [--cr rate] [--eeprom-backup] [--eeprom-dump] [--eeprom-wipe] [--version] [port]
|
||||||
|
|
||||||
|
RNode Configuration and firmware utility. This program allows you to change various settings and startup modes of RNode. It can also install, flash and update the firmware on supported devices.
|
||||||
|
|
||||||
|
positional arguments:
|
||||||
|
port serial port where RNode is attached
|
||||||
|
|
||||||
|
options:
|
||||||
|
-h, --help show this help message and exit
|
||||||
|
-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
|
||||||
|
--nocheck Don't check for firmware updates online
|
||||||
|
-C, --clear-cache Clear locally cached firmware files
|
||||||
|
-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
|
||||||
|
--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)
|
||||||
|
--eeprom-backup Backup EEPROM to file
|
||||||
|
--eeprom-dump Dump EEPROM to console
|
||||||
|
--eeprom-wipe Unlock and wipe EEPROM
|
||||||
|
--version Print program version and exit
|
||||||
|
</pre></div>
|
||||||
|
</div>
|
||||||
|
<p>For more information on how to create your own RNodes, please read the <a class="reference internal" href="hardware.html#rnode-creating"><span class="std std-ref">Creating RNodes</span></a>
|
||||||
|
section of this manual.</p>
|
||||||
|
</section>
|
||||||
</section>
|
</section>
|
||||||
<section id="improving-system-configuration">
|
<section id="improving-system-configuration">
|
||||||
<h2>Improving System Configuration<a class="headerlink" href="#improving-system-configuration" title="Permalink to this heading">#</a></h2>
|
<h2>Improving System Configuration<a class="headerlink" href="#improving-system-configuration" title="Permalink to this heading">#</a></h2>
|
||||||
@ -751,6 +791,7 @@ WantedBy=multi-user.target
|
|||||||
<li><a class="reference internal" href="#the-rnprobe-utility">The rnprobe Utility</a></li>
|
<li><a class="reference internal" href="#the-rnprobe-utility">The rnprobe Utility</a></li>
|
||||||
<li><a class="reference internal" href="#the-rncp-utility">The rncp Utility</a></li>
|
<li><a class="reference internal" href="#the-rncp-utility">The rncp Utility</a></li>
|
||||||
<li><a class="reference internal" href="#the-rnx-utility">The rnx Utility</a></li>
|
<li><a class="reference internal" href="#the-rnx-utility">The rnx Utility</a></li>
|
||||||
|
<li><a class="reference internal" href="#the-rnodeconf-utility">The rnodeconf Utility</a></li>
|
||||||
</ul>
|
</ul>
|
||||||
</li>
|
</li>
|
||||||
<li><a class="reference internal" href="#improving-system-configuration">Improving System Configuration</a><ul>
|
<li><a class="reference internal" href="#improving-system-configuration">Improving System Configuration</a><ul>
|
||||||
|
@ -7,16 +7,35 @@ you want to do. This guide will outline sensible starting paths for different
|
|||||||
scenarios.
|
scenarios.
|
||||||
|
|
||||||
|
|
||||||
|
Standalone Reticulum Installation
|
||||||
|
=============================================
|
||||||
|
If you simply want to install Reticulum and related utilities on a system,
|
||||||
|
the easiest way is via ``pip``:
|
||||||
|
|
||||||
|
.. code::
|
||||||
|
|
||||||
|
pip install rns
|
||||||
|
|
||||||
|
If you no not already have pip installed, you can install it using the package manager
|
||||||
|
of your system with a command like ``sudo apt install python3-pip``,
|
||||||
|
``sudo pamac install python-pip`` or similar. You can also dowload the Reticulum release
|
||||||
|
wheels from GitHub, or other release channels, and install them offline using ``pip``:
|
||||||
|
|
||||||
|
.. code::
|
||||||
|
|
||||||
|
pip install ./rns-0.4.6-py3-none-any.whl
|
||||||
|
|
||||||
|
|
||||||
Try Using a Reticulum-based Program
|
Try Using a Reticulum-based Program
|
||||||
=============================================
|
=============================================
|
||||||
|
|
||||||
If you simply want to try using a program built with Reticulum, a few different
|
If you simply want to try using a program built with Reticulum, a few different
|
||||||
programs exist that allow basic communication and a range of other useful functions
|
programs exist that allow basic communication and a range of other useful functions,
|
||||||
over even extremely low-bandwidth Reticulum networks.
|
even over extremely low-bandwidth Reticulum networks.
|
||||||
|
|
||||||
These programs will let you get a feel for how Reticulum works. They have been designed
|
These programs will let you get a feel for how Reticulum works. They have been designed
|
||||||
to run well over networks based on LoRa or packet radio, but can also be used completely
|
to run well over networks based on LoRa or packet radio, but can also be used over fast
|
||||||
over local WiFi, wired Ethernet, the Internet, or any combination.
|
links, such as local WiFi, wired Ethernet, the Internet, or any combination.
|
||||||
|
|
||||||
As such, it is easy to get started experimenting, without having to set up any radio
|
As such, it is easy to get started experimenting, without having to set up any radio
|
||||||
transceivers or infrastructure just to try it out. Launching the programs on separate
|
transceivers or infrastructure just to try it out. Launching the programs on separate
|
||||||
@ -44,7 +63,7 @@ You can install Nomad Network via pip:
|
|||||||
.. code::
|
.. code::
|
||||||
|
|
||||||
# Install ...
|
# Install ...
|
||||||
pip3 install nomadnet
|
pip install nomadnet
|
||||||
|
|
||||||
# ... and run
|
# ... and run
|
||||||
nomadnet
|
nomadnet
|
||||||
@ -61,12 +80,14 @@ If you would rather use a program with a graphical user interface, you can take
|
|||||||
a look at `Sideband <https://unsigned.io/sideband>`_, which is available for Android,
|
a look at `Sideband <https://unsigned.io/sideband>`_, which is available for Android,
|
||||||
Linux and macOS.
|
Linux and macOS.
|
||||||
|
|
||||||
.. image:: screenshots/sideband_1.png
|
.. image:: screenshots/sideband_devices.webp
|
||||||
:align: center
|
:align: center
|
||||||
:target: _images/sideband_1.png
|
:target: _images/sideband_devices.webp
|
||||||
|
|
||||||
Sideband is currently in the early stages of development, but already provides basic
|
Sideband allows you to communicate with other people or LXMF-compatible
|
||||||
communication features, and interoperates with Nomad Network, or any other LXMF client.
|
systems over Reticulum networks using LoRa, Packet Radio, WiFi, I2P, Encrypted QR
|
||||||
|
Paper Messages, or anything else Reticulum supports. It also interoperates with
|
||||||
|
the Nomad Network program.
|
||||||
|
|
||||||
Using the Included Utilities
|
Using the Included Utilities
|
||||||
=============================================
|
=============================================
|
||||||
@ -272,7 +293,7 @@ don't use pip, but try this recipe:
|
|||||||
|
|
||||||
# Run the example in client mode to "ping" the server.
|
# Run the example in client mode to "ping" the server.
|
||||||
# Replace the hash below with the actual destination hash of your server.
|
# Replace the hash below with the actual destination hash of your server.
|
||||||
python3 Examples/Echo.py 3e12fc71692f8ec47bc5
|
python3 Examples/Echo.py 174a64852a75682259ad8b921b8bf416
|
||||||
|
|
||||||
# Have a look at another example
|
# Have a look at another example
|
||||||
python3 Examples/Filetransfer.py -h
|
python3 Examples/Filetransfer.py -h
|
||||||
@ -287,7 +308,7 @@ or ask one of the developers or maintainers for a good place to start.
|
|||||||
Reticulum on ARM64
|
Reticulum on ARM64
|
||||||
==============================================
|
==============================================
|
||||||
On some architectures, including ARM64, not all dependencies have precompiled
|
On some architectures, including ARM64, not all dependencies have precompiled
|
||||||
binaries. On such systems, you will need to install ``python3-dev`` before
|
binaries. On such systems, you may need to install ``python3-dev`` before
|
||||||
installing Reticulum or programs that depend on Reticulum.
|
installing Reticulum or programs that depend on Reticulum.
|
||||||
|
|
||||||
.. code::
|
.. code::
|
||||||
@ -300,6 +321,12 @@ installing Reticulum or programs that depend on Reticulum.
|
|||||||
python3 -m pip install rns
|
python3 -m pip install rns
|
||||||
|
|
||||||
|
|
||||||
|
Reticulum on Raspberry Pi
|
||||||
|
==============================================
|
||||||
|
It is currently recommended to use a 64-bit version of the Raspberry Pi OS
|
||||||
|
if you want to run Reticulum on Raspberry Pi computers, since 32-bit versions
|
||||||
|
don't always have packages available for some dependencies.
|
||||||
|
|
||||||
Reticulum on Android
|
Reticulum on Android
|
||||||
==============================================
|
==============================================
|
||||||
Reticulum can be used on Android in different ways. The easiest way to get
|
Reticulum can be used on Android in different ways. The easiest way to get
|
||||||
@ -313,12 +340,31 @@ Termux is a terminal emulator and Linux environment for Android based devices,
|
|||||||
which includes the ability to use many different programs and libraries,
|
which includes the ability to use many different programs and libraries,
|
||||||
including Reticulum.
|
including Reticulum.
|
||||||
|
|
||||||
Since the Python cryptography.io module does not offer pre-built wheels for
|
To use Reticulum within the Termux environment, you will need to install
|
||||||
Android, the standard one-line install of Reticulum does not work on Android,
|
``python`` and the ``python-cryptography`` library using ``pkg``, the package-manager
|
||||||
and a few extra commands are required.
|
build into Termux. After that, you can use ``pip`` to install Reticulum.
|
||||||
|
|
||||||
From within Termux, execute the following:
|
From within Termux, execute the following:
|
||||||
|
|
||||||
|
.. code::
|
||||||
|
|
||||||
|
# First, make sure indexes and packages are up to date.
|
||||||
|
pkg update
|
||||||
|
pkg upgrade
|
||||||
|
|
||||||
|
# Then install python and the cryptography library.
|
||||||
|
pkg install python python-cryptography
|
||||||
|
|
||||||
|
# Make sure pip is up to date, and install the wheel module.
|
||||||
|
pip install wheel pip --upgrade
|
||||||
|
|
||||||
|
# Install Reticulum
|
||||||
|
pip install rns
|
||||||
|
|
||||||
|
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::
|
||||||
|
|
||||||
# First, make sure indexes and packages are up to date.
|
# First, make sure indexes and packages are up to date.
|
||||||
@ -329,7 +375,7 @@ From within Termux, execute the following:
|
|||||||
pkg install python build-essential openssl libffi rust
|
pkg install python build-essential openssl libffi rust
|
||||||
|
|
||||||
# Make sure pip is up to date, and install the wheel module.
|
# Make sure pip is up to date, and install the wheel module.
|
||||||
pip3 install wheel pip --upgrade
|
pip install wheel pip --upgrade
|
||||||
|
|
||||||
# To allow the installer to build the cryptography module,
|
# To allow the installer to build the cryptography module,
|
||||||
# we need to let it know what platform we are compiling for:
|
# we need to let it know what platform we are compiling for:
|
||||||
@ -338,11 +384,11 @@ From within Termux, execute the following:
|
|||||||
# Start the install process for the cryptography module.
|
# Start the install process for the cryptography module.
|
||||||
# Depending on your device, this can take several minutes,
|
# Depending on your device, this can take several minutes,
|
||||||
# since the module must be compiled locally on your device.
|
# since the module must be compiled locally on your device.
|
||||||
pip3 install cryptography
|
pip install cryptography
|
||||||
|
|
||||||
# If the above installation succeeds, you can now install
|
# If the above installation succeeds, you can now install
|
||||||
# Reticulum and any related software
|
# Reticulum and any related software
|
||||||
pip3 install rns
|
pip install rns
|
||||||
|
|
||||||
It is also possible to include Reticulum in apps compiled and distributed as
|
It is also possible to include Reticulum in apps compiled and distributed as
|
||||||
Android APKs. A detailed tutorial and example source code will be included
|
Android APKs. A detailed tutorial and example source code will be included
|
||||||
|
@ -166,7 +166,7 @@ then install Reticulum with with ``pip``:
|
|||||||
|
|
||||||
.. code::
|
.. code::
|
||||||
|
|
||||||
pip3 install rns
|
pip install rns
|
||||||
|
|
||||||
Once installation has completed, it is time to start installing the firmware on your
|
Once installation has completed, it is time to start installing the firmware on your
|
||||||
devices. Run ``rnodeconf`` in auto-install mode like so:
|
devices. Run ``rnodeconf`` in auto-install mode like so:
|
||||||
|
@ -5,7 +5,9 @@ Using Reticulum on Your System
|
|||||||
******************************
|
******************************
|
||||||
|
|
||||||
Reticulum is not installed as a driver or kernel module, as one might expect
|
Reticulum is not installed as a driver or kernel module, as one might expect
|
||||||
of a networking stack. Instead, Reticulum is distributed as a Python module.
|
of a networking stack. Instead, Reticulum is distributed as a Python module,
|
||||||
|
containing the networking core, and a set of utility and daemon programs.
|
||||||
|
|
||||||
This means that no special privileges are required to install or use it. It
|
This means that no special privileges are required to install or use it. It
|
||||||
is also very light-weight, and easy to transfer to, and install on new systems.
|
is also very light-weight, and easy to transfer to, and install on new systems.
|
||||||
|
|
||||||
@ -16,8 +18,8 @@ already running.
|
|||||||
In many cases, this approach is sufficient. When any program needs to use
|
In many cases, this approach is sufficient. When any program needs to use
|
||||||
Reticulum, it is loaded, initialised, interfaces are brought up, and the
|
Reticulum, it is loaded, initialised, interfaces are brought up, and the
|
||||||
program can now communicate over any Reticulum networks available. If another
|
program can now communicate over any Reticulum networks available. If another
|
||||||
program starts up and also wants access to the same Reticulum network, the
|
program starts up and also wants access to the same Reticulum network, the already
|
||||||
instance is simply shared. This works for any number of programs running
|
running instance is simply shared. This works for any number of programs running
|
||||||
concurrently, and is very easy to use, but depending on your use case, there
|
concurrently, and is very easy to use, but depending on your use case, there
|
||||||
are other options.
|
are other options.
|
||||||
|
|
||||||
@ -425,6 +427,48 @@ You can specify as many allowed senders as needed, or completely disable authent
|
|||||||
--version show program's version number and exit
|
--version show program's version number and exit
|
||||||
|
|
||||||
|
|
||||||
|
The rnodeconf Utility
|
||||||
|
=====================
|
||||||
|
|
||||||
|
The ``rnodeconf`` utility allows you to inspect and configure existing :ref:`RNodes<rnode-main>`, and
|
||||||
|
to create and provision new :ref:`RNodes<rnode-main>` from any supported hardware devices.
|
||||||
|
|
||||||
|
.. code:: text
|
||||||
|
|
||||||
|
usage: rnodeconf [-h] [-i] [-a] [-u] [-U] [--fw-version version] [--nocheck] [-C] [-N] [-T] [-b] [-B] [-p] [--freq Hz] [--bw Hz] [--txp dBm] [--sf factor] [--cr rate] [--eeprom-backup] [--eeprom-dump] [--eeprom-wipe] [--version] [port]
|
||||||
|
|
||||||
|
RNode Configuration and firmware utility. This program allows you to change various settings and startup modes of RNode. It can also install, flash and update the firmware on supported devices.
|
||||||
|
|
||||||
|
positional arguments:
|
||||||
|
port serial port where RNode is attached
|
||||||
|
|
||||||
|
options:
|
||||||
|
-h, --help show this help message and exit
|
||||||
|
-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
|
||||||
|
--nocheck Don't check for firmware updates online
|
||||||
|
-C, --clear-cache Clear locally cached firmware files
|
||||||
|
-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
|
||||||
|
--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)
|
||||||
|
--eeprom-backup Backup EEPROM to file
|
||||||
|
--eeprom-dump Dump EEPROM to console
|
||||||
|
--eeprom-wipe Unlock and wipe EEPROM
|
||||||
|
--version Print program version and exit
|
||||||
|
|
||||||
|
For more information on how to create your own RNodes, please read the :ref:`Creating RNodes<rnode-creating>`
|
||||||
|
section of this manual.
|
||||||
|
|
||||||
Improving System Configuration
|
Improving System Configuration
|
||||||
------------------------------
|
------------------------------
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user