Diferencia entre revisiones de «Redes Autónomas por fuera de Internet»
Página creada con «El 6 de junio nos reunimos para hablar sobre meshastic, meshcore y otras redes que utilizan LoRa.» |
Sin resumen de edición |
||
| Línea 1: | Línea 1: | ||
El 6 de junio nos reunimos para hablar sobre meshastic, meshcore y otras redes que utilizan LoRa. | El 6 de junio nos reunimos para hablar sobre meshastic, meshcore y otras redes que utilizan LoRa. | ||
= Reticulum = | |||
El 27 de junio estuvimos reunidos aprendiendo y probando Reticulum. A continuación, algunas instrucciones para instalar un stack básico de Reticulum[https://es.wikipedia.org/wiki/Reticulum_Network_Stack]. El stack que usamos consiste en: | |||
* <code>rnsd</code> [https://markqvist.github.io/Reticulum/manual/using.html#the-rnsd-utility] (el daemon con el stack de red básico). | |||
* <code>LXMF</code> [https://github.com/markqvist/lxmf] [https://reticulum.network/manual/software.html#lxmf] (un protocolo encima de Reticulum que permite la entrega de "mensajes" de manera flexible, eficiente y asíncrona, ya que permite el reenvío, almacenamiento y entrega de mensajes a nodos que no están conectados en el momento de la transmisión). | |||
* <code>NomadNetwork</code> [https://github.com/markqvist/nomadnet] Una plataforma de comunicación encima de Reticulum para comunicarse con otras personas con o sin conexión directa a internet. | |||
== Instalación en linux == | |||
Para instalar el stack de Reticulum en Linux necesitamos tener Python 3 y PiP [https://pypi.org/project/pip/] instalado. Se recomienda también instalar virtualenv [https://virtualenv.pypa.io/en/latest/] para evitar posibles conflictos en las versiones de las dependencias de Python. | |||
== Python y dependencias == | |||
Primero tenemos que instalar python, su gestor de dependencias (pip) y virtualenv para aislar esas dependencias y que solo se instalen para el entorno de estas aplicaciones. | |||
=== En Debian/Ubuntu y derivados === | |||
sudo apt install python3-full python3-pip python3-virtualenv | |||
=== En Arch Linux === | |||
sudo pacman -Syu python python-pip python-virtualenv | |||
== Aplicaciones == | |||
Una vez instalado, ya deberíamos tenemos en el sistema Python, PiP y virtualenv instalados, junto con lo necesario para instalar las aplicaciones. Es recomendable crear una carpeta llamada `reticulum`. | |||
mkdir reticulum | |||
cd reticulum | |||
Ahora, creamos el entorno virtual de Python que usaremos para nuestras apps: | |||
virtualenv reticulum_env | |||
Ahí nos crea una carpeta `reticulum_env`, para "activar" (empezar a usar) el entorno virtual hacemos: | |||
source reticulum_env/bin/activate | |||
Ahora, todos los comandos de python que usemos, usaran las librerías instaladas en este entorno. Ahora usaremos `pip` para instalar los paquetes necesarios: | |||
pip install rns | |||
pip install lxmf | |||
pip install nomadnet | |||
Ahora ya tenemos instaladas todas las aplicaciones que necesitamos para poder probar Reticulum. Antes de arrancar, es recomendable actualizar los archivos de configuración. | |||
=== rnsd === | |||
Por defecto, `rnsd` buscará su configuración en cualquiera de las siguientes carpetas: | |||
/etc/reticulum | |||
~/.config/reticulum | |||
~/.reticulum | |||
Si por algún motivo prefieres usar una ubicación diferente, puedes crear la carpeta de configuración en cualquier sitio y usar el parámetro `--config /ubicación/de/la/configuración` al ejecutar el comando. Para nuestro ejemplo, vamos a usar `~/.reticulum`. Para ver un ejemplo detallado de un archivo de configuración, podemos ejecutar el comando `rnsd` con el parámetro `--exampleconfig`, e imprimirá por pantalla un archivo de configuración. Es recomendable leer la sección [https://reticulum.network/manual/gettingstartedfast.html#bootstrapping-connectivity bootstrapping connectivity] del manual de Reticulum para decidir qué nodos o instancias queremos usar, dependiendo de la estrategia que queramos implmentar. | |||
Nosotros en el taller usamos el siguiente archivo de configuración, proporcionado por Fátima, con una serie de instancias a las que conectar. | |||
Abrimos `~/.reticulum/config` con nuestro editor favorito y pegamos el contenido de abajo: | |||
<pre> | |||
[reticulum] | |||
# If you enable Transport, your system will route traffic | |||
# for other peers, pass announces and serve path requests. | |||
# This should be done for systems that are suited to act | |||
# as transport nodes, ie. if they are stationary and | |||
# always-on. This directive is optional and can be removed | |||
# for brevity. | |||
enable_transport = yes | |||
[logging] | |||
# Extreme logging | |||
loglevel = 7 | |||
[interfaces] | |||
[[Home]] | |||
type = TCPServerInterface | |||
listen_port = 4242 | |||
[[Direct to server]] | |||
type = TCPClientInterface | |||
enabled = true | |||
target_host = 62.169.20.91 | |||
target_port = 4242 | |||
[[Chicagoland RNS]] | |||
type = TCPClientInterface | |||
enabled = true | |||
target_host = rns.noderage.org | |||
target_port = 4242 | |||
[[Sydney RNS]] | |||
type = TCPClientInterface | |||
enabled = true | |||
target_host = sydney.reticulum.au | |||
target_port = 4242 | |||
[[dismails TCP Interface]] | |||
type = TCPClientInterface | |||
interface_enabled = true | |||
target_host = rns.dismail.de | |||
target_port = 7822 | |||
[[interloper node]] | |||
type = TCPClientInterface | |||
interface_enabled = true | |||
target_host = intr.cx | |||
target_port = 4242 | |||
[[noDNS1]] | |||
type = TCPClientInterface | |||
interface_enabled = true | |||
target_host = 202.61.243.41 | |||
target_port = 4965 | |||
[[Beleth RNS Hub]] | |||
type = TCPClientInterface | |||
interface_enabled = true | |||
target_host = rns.beleth.net | |||
target_port = 4242 | |||
#Reticulum Portugal | |||
[[RNS reticulum.pt]] | |||
type = TCPClientInterface | |||
interface_enabled = true | |||
name = RNS reticulum.pt | |||
target_host = network.reticulum.pt | |||
target_port = 4242 | |||
#BSDHell | |||
[[BSDHell]] | |||
type = TCPClientInterface | |||
enabled = yes | |||
target_host = reticulum.bsdhell.com | |||
target_port = 4242 | |||
#Jenny | |||
[[RNS - Derpy Cloud]] | |||
type = TCPClientInterface | |||
enabled = yes | |||
target_host = rns.derps.me | |||
target_port = 34242 | |||
</pre> | |||
En este ejemplo, todas las conexiones ocurren sobre TCP, pero usando el archivo de configuración de ejemplo que `rnsd --exampleconfig` devuelve, es posible ver cómo se configurarían otras interfaces diferentes de TCP, como UDP, I2P, RNode (LoRa) u otras interfaces de radio. Ahora ya podemos arrancar el servicio, si usamos uno de los tres directorios mencionados arriba para configuración, podemos simplemente ejecutar <code>rnsd</code> y el servicio quedará corriendo en primer plano. Ahora podemos continuar abriendo una nueva terminal. | |||
'''Importante''' recordar, al abrir una nueva terminal, es necesario activar de nuevo el entorno virtual de python que creamos al principio, si no los paquetes que instalamos no estarán disponibles. | |||
=== LXMF === | |||
En una nueva terminal, volvemos a la carpeta <code>reticulum</code> que creamos al prinpipio y activamos el entorno virtual: | |||
virtualenv reticulum_env | |||
Una vez activado, igual que con el programa anterior, el archivo de configuración será, por defecto, leído de cualquiera de los siguientes directorios: | |||
/etc/lxmd | |||
~/.config/lxmd | |||
~/.lxmd | |||
Si por cualquier motivo queremos guardar la configuración en un directorio diferente, podemos crearlo y ejecutar la aplicación con <code>--config /el/directorio/que/queramos</code>. Igual que con la aplicación anterior, también se puede generar un archivo de configuración de ejemplo, ampliamente comentado, usando `--exampleconfig`. | |||
Nosotros usamos el siguiente, es recomendable cambiar el "Display name" por uno diferente para cada persona. | |||
<pre> | |||
# This is an example LXM Daemon config file. | |||
# You should probably edit it to suit your | |||
# intended usage. | |||
[propagation] | |||
# Whether to enable propagation node | |||
enable_node = yes | |||
# You can specify identity hashes for remotes | |||
# that are allowed to control and query status | |||
# for this propagation node. | |||
# control_allowed = 7d7e542829b40f32364499b27438dba8, 437229f8e29598b2282b88bad5e44698 | |||
# An optional name for this node, included | |||
# in announces. | |||
# node_name = Anonymous Propagation Node | |||
# Automatic announce interval in minutes. | |||
# 6 hours by default. | |||
announce_interval = 360 | |||
# Whether to announce when the node starts. | |||
announce_at_start = yes | |||
# Wheter to automatically peer with other | |||
# propagation nodes on the network. | |||
autopeer = yes | |||
# The maximum peering depth (in hops) for | |||
# automatically peered nodes. | |||
autopeer_maxdepth = 6 | |||
# The maximum amount of storage to use for | |||
# the LXMF Propagation Node message store, | |||
# specified in megabytes. When this limit | |||
# is reached, LXMF will periodically remove | |||
# messages in its message store. By default, | |||
# LXMF prioritises keeping messages that are | |||
# new and small. Large and old messages will | |||
# be removed first. This setting is optional | |||
# and defaults to 500 megabytes. | |||
message_storage_limit = 500 | |||
# The maximum accepted transfer size per in- | |||
# coming propagation message, in kilobytes. | |||
# This sets the upper limit for the size of | |||
# single messages accepted onto this node. | |||
propagation_message_max_accepted_size = 256 | |||
# The maximum accepted transfer size per in- | |||
# coming propagation node sync. | |||
# | |||
# If a node wants to propagate a larger number | |||
# of messages to this node, than what can fit | |||
# within this limit, it will prioritise sending | |||
# the smallest messages first, and try again | |||
# with any remaining messages at a later point. | |||
propagation_sync_max_accepted_size = 10240 | |||
# You can configure the target stamp cost | |||
# required to deliver messages via this node. | |||
propagation_stamp_cost_target = 16 | |||
# If set higher than 0, the stamp cost flexi- | |||
# bility option will make this node accept | |||
# messages with a lower stamp cost than the | |||
# target from other propagation nodes (but | |||
# not from peers directly). This allows the | |||
# network to gradually adjust stamp cost. | |||
propagation_stamp_cost_flexibility = 3 | |||
# The peering_cost option configures the target | |||
# value required for a remote node to peer with | |||
# and deliver messages to this node. | |||
peering_cost = 18 | |||
# You can configure the maximum peering cost | |||
# of remote nodes that this node will peer with. | |||
# Setting this to a higher number will allow | |||
# this node to peer with other nodes requiring | |||
# a higher peering key value, but will require | |||
# more computation time during initial peering | |||
# when generating the peering key. | |||
remote_peering_cost_max = 26 | |||
# You can tell the LXMF message router to | |||
# prioritise storage for one or more | |||
# destinations. If the message store reaches | |||
# the specified limit, LXMF will prioritise | |||
# keeping messages for destinations specified | |||
# with this option. This setting is optional, | |||
# and generally you do not need to use it. | |||
# prioritise_destinations = 41d20c727598a3fbbdf9106133a3a0ed, d924b81822ca24e68e2effea99bcb8cf | |||
# You can configure the maximum number of other | |||
# propagation nodes that this node will peer | |||
# with automatically. The default is 20. | |||
max_peers = 20 | |||
# You can configure a list of static propagation | |||
# node peers, that this node will always be | |||
# peered with, by specifying a list of | |||
# destination hashes. | |||
# static_peers = e17f833c4ddf8890dd3a79a6fea8161d, 5a2d0029b6e5ec87020abaea0d746da4 | |||
# You can configure the propagation node to | |||
# only accept incoming propagation messages | |||
# from configured static peers. | |||
# from_static_only = True | |||
# By default, any destination is allowed to | |||
# connect and download messages, but you can | |||
# optionally restrict this. If you enable | |||
# authentication, you must provide a list of | |||
# allowed identity hashes in the a file named | |||
# "allowed" in the lxmd config directory. | |||
auth_required = no | |||
[lxmf] | |||
# The LXM Daemon will create an LXMF destination | |||
# that it can receive messages on. This option sets | |||
# the announced display name for this destination. | |||
display_name = Anonymous Peer | |||
# It is possible to announce the internal LXMF | |||
# destination when the LXM Daemon starts up. | |||
announce_at_start = yes | |||
# You can also announce the delivery destination | |||
# at a specified interval. This is not enabled by | |||
# default. | |||
announce_interval = 1 | |||
# The maximum accepted unpacked size for mes- | |||
# sages received directly from other peers, | |||
# specified in kilobytes. Messages larger than | |||
# this will be rejected before the transfer | |||
# begins. | |||
delivery_transfer_max_accepted_size = 1000 | |||
# You can configure an external program to be run | |||
# every time a message is received. The program | |||
# will receive as an argument the full path to the | |||
# message saved as a file. The example below will | |||
# simply result in the message getting deleted as | |||
# soon as it has been received. | |||
# on_inbound = rm | |||
[logging] | |||
# Valid log levels are 0 through 7: | |||
# 0: Log only critical information | |||
# 1: Log errors and lower log levels | |||
# 2: Log warnings and lower log levels | |||
# 3: Log notices and lower log levels | |||
# 4: Log info and lower (this is the default) | |||
# 5: Verbose logging | |||
# 6: Debug logging | |||
# 7: Extreme logging | |||
loglevel = 7 | |||
</pre> | |||
Con el archivo de configuración en su lugar, podemos ejecutar <code>lxmd</code> y, si usamos los directorios por defecto especificados arriba para <code>rnsd</code>, no debería hacer falta nada más, pero si usamos uno diferente , es posible especificar el directorio de configuración de reticulum usando <code>--rnsconfig</code>. | |||
=== Nomad Network === | |||
Este es el último, el cliente que nos permite interactuar con la red. Hay que abrir otra terminal, ir al directorio <code>reticulum</code> que creamos al principio, y ahí cargar el entorno virtual para poder usar las aplicaciones que instalamos (<code>virtualenv reticulum_env</code>). Igual que los anteriores, esta app busca su configuración en cualquiera de estas 3 ubicaciones: | |||
/etc/nomadnetwork | |||
~/.config/nomadnetwork | |||
~/.nomadnetwork | |||
En cualquiera de ellas podemos crear un archivo <code>config</code>. En este caso no hay un comando para una configuración de ejemplo, pero Fátima nos compartió el siguiente archivo: | |||
<pre> | |||
# This is the default Nomad Network config file. | |||
# You should probably edit it to suit your needs and use-case, | |||
[logging] | |||
# Valid log levels are 0 through 7: | |||
# 0: Log only critical information | |||
# 1: Log errors and lower log levels | |||
# 2: Log warnings and lower log levels | |||
# 3: Log notices and lower log levels | |||
# 4: Log info and lower (this is the default) | |||
# 5: Verbose logging | |||
# 6: Debug logging | |||
# 7: Extreme logging | |||
loglevel = 7 | |||
destination = file | |||
[client] | |||
enable_client = yes | |||
user_interface = text | |||
downloads_path = ~/Downloads | |||
notify_on_new_message = yes | |||
# By default, the peer is announced at startup | |||
# to let other peers reach it immediately. | |||
announce_at_start = yes | |||
# By default, the client will try to deliver a | |||
# message via the LXMF propagation network, if | |||
# a direct delivery to the recipient is not | |||
# possible. | |||
try_propagation_on_send_fail = yes | |||
# Nomadnet will periodically sync messages from | |||
# LXMF propagation nodes by default, if any are | |||
# present. You can disable this if you want to | |||
# only sync when manually initiated. | |||
periodic_lxmf_sync = yes | |||
# The sync interval in minutes. This value is | |||
# equal to 6 hours (360 minutes) by default. | |||
lxmf_sync_interval = 360 | |||
# By default, automatic LXMF syncs will only | |||
# download 8 messages at a time. You can change | |||
# this number, or set the option to 0 to disable | |||
# the limit, and download everything every time. | |||
lxmf_sync_limit = 8 | |||
# You can specify a required stamp cost for | |||
# inbound messages to be accepted. Specifying | |||
# a stamp cost will require untrusted senders | |||
# that message you to include a cryptographic | |||
# stamp in their messages. Performing this | |||
# operation takes the sender an amount of time | |||
# proportional to the stamp cost. As a rough | |||
# estimate, a stamp cost of 8 will take less | |||
# than a second to compute, and a stamp cost | |||
# of 20 could take several minutes, even on | |||
# a fast computer. | |||
required_stamp_cost = None | |||
# You can signal stamp requirements to senders, | |||
# but still accept messages with invalid stamps | |||
# by setting this option to True. | |||
accept_invalid_stamps = False | |||
# The maximum accepted unpacked size for mes- | |||
# sages received directly from other peers, | |||
# specified in kilobytes. Messages larger than | |||
# this will be rejected before the transfer | |||
# begins. | |||
max_accepted_size = 500 | |||
# The announce stream will only show one entry | |||
# per destination or node by default. You can | |||
# change this to show as many announces as have | |||
# been received, for every destination. | |||
compact_announce_stream = yes | |||
[textui] | |||
# Amount of time to show intro screen | |||
intro_time = 1 | |||
# You can specify the display theme. | |||
# theme = light | |||
theme = dark | |||
# Specify the number of colors to use | |||
# valid colormodes are: | |||
# monochrome, 16, 88, 256 and 24bit | |||
# | |||
# The default is a conservative 256 colors. | |||
# If your terminal does not support this, | |||
# you can lower it. Some terminals support | |||
# 24 bit color. | |||
# colormode = monochrome | |||
# colormode = 16 | |||
# colormode = 88 | |||
colormode = 256 | |||
# colormode = 24bit | |||
# By default, unicode glyphs are used. If | |||
# you have a Nerd Font installed, you can | |||
# enable this for a better user interface. | |||
# You can also enable plain text glyphs if | |||
# your terminal doesn't support unicode. | |||
# glyphs = plain | |||
glyphs = unicode | |||
# glyphs = nerdfont | |||
# You can specify whether mouse events | |||
# should be considered as input to the | |||
# application. On by default. | |||
mouse_enabled = True | |||
# What editor to use for editing text. | |||
editor = nano | |||
# If you don't want the Guide section to | |||
# show up in the menu, you can disable it. | |||
hide_guide = no | |||
[node] | |||
# Whether to enable node hosting | |||
enable_node = yes | |||
# The node name will be visible to other | |||
# peers on the network, and included in | |||
# announces. | |||
node_name = Fatima | |||
# Automatic announce interval in minutes. | |||
# 6 hours by default. | |||
announce_interval = 360 | |||
# Whether to announce when the node starts. | |||
announce_at_start = Yes | |||
# When Nomad Network is hosting a page-serving | |||
# node, it can also act as an LXMF propagation | |||
# node. This is a convenient feature that lets | |||
# you easily set up and run a propagation node | |||
# on the network, but it is not as fully | |||
# featured as using the lxmd program to host a | |||
# propagation node. For complete control and | |||
# flexibility, use lxmd to run a PN. For a | |||
# small local system or network, the built-in | |||
# PN functionality will suffice for most cases. | |||
# | |||
# If there is already a large amount of | |||
# propagation nodes on the network, or you | |||
# simply want to run a pageserving-only node, | |||
# you should disable running a propagation node. | |||
# Due to lots of propagation nodes being | |||
# available, this is currently the default. | |||
disable_propagation = Yes | |||
# For clients and other propagation nodes | |||
# delivering messages via this node, you can | |||
# configure the minimum required propagation | |||
# stamp costs. All messages delivered to the | |||
# propagation node network must have a valid | |||
# propagation stamp, or they will be rejected. | |||
# Clients automatically detect the stamp cost | |||
# for the node they are delivering to, and | |||
# compute a corresponding stamp before trying | |||
# to deliver the message to the propagation | |||
# node. | |||
# | |||
# Propagation stamps are easier to verify in | |||
# large batches, and therefore also somewhat | |||
# easier to compute for the senders. As such, | |||
# a reasonable propagation stamp cost should | |||
# be a bit higher than the normal peer-to-peer | |||
# stamp costs. | |||
# | |||
# Propagation stamps does not incur any extra | |||
# load for propagation nodes processing them, | |||
# since they are only required to verify that | |||
# they are correct, and only the generation | |||
# is computationally costly. Setting a sensible | |||
# propagation stamp cost (and periodically | |||
# checking the average network consensus) helps | |||
# keep spam and misuse out of the propagation | |||
# node network. | |||
propagation_cost = 16 | |||
# The maximum amount of storage to use for | |||
# the LXMF Propagation Node message store, | |||
# specified in megabytes. When this limit | |||
# is reached, LXMF will periodically remove | |||
# messages in its message store. By default, | |||
# LXMF prioritises keeping messages that are | |||
# new and small. Large and old messages will | |||
# be removed first. This setting is optional | |||
# and defaults to 2 gigabytes. | |||
# message_storage_limit = 2000 | |||
# The maximum accepted transfer size per in- | |||
# coming propagation message, in kilobytes. | |||
# This sets the upper limit for the size of | |||
# single messages accepted onto this node. | |||
max_transfer_size = 256 | |||
# The maximum accepted transfer size per in- | |||
# coming propagation node sync. | |||
# | |||
# If a node wants to propagate a larger number | |||
# of messages to this node, than what can fit | |||
# within this limit, it will prioritise sending | |||
# the smallest messages first, and try again | |||
# with any remaining messages at a later point. | |||
max_sync_size = 10240 | |||
# You can tell the LXMF message router to | |||
# prioritise storage for one or more | |||
# destinations. If the message store reaches | |||
# the specified limit, LXMF will prioritise | |||
# keeping messages for destinations specified | |||
# with this option. This setting is optional, | |||
# and generally you do not need to use it. | |||
# prioritise_destinations = 41d20c727598a3fbbdf9106133a3a0ed, d924b81822ca24e68e2effea99bcb8cf | |||
# You can configure the maximum number of other | |||
# propagation nodes that this node will peer | |||
# with automatically. The default is 20. | |||
# max_peers = 20 | |||
# You can configure a list of static propagation | |||
# node peers, that this node will always be | |||
# peered with, by specifying a list of | |||
# destination hashes. | |||
# static_peers = e17f833c4ddf8890dd3a79a6fea8161d, 5a2d0029b6e5ec87020abaea0d746da4 | |||
# You can specify the interval in minutes for | |||
# rescanning the hosted pages path. By default, | |||
# this option is disabled, and the pages path | |||
# will only be scanned on startup. | |||
# page_refresh_interval = 0 | |||
# You can specify the interval in minutes for | |||
# rescanning the hosted files path. By default, | |||
# this option is disabled, and the files path | |||
# will only be scanned on startup. | |||
# file_refresh_interval = 0 | |||
[printing] | |||
# You can configure Nomad Network to print | |||
# various kinds of information and messages. | |||
# Printing messages is disabled by default | |||
print_messages = No | |||
# You can configure a custom template for | |||
# message printing. If you uncomment this | |||
# option, set a path to the template and | |||
# restart Nomad Network, a default template | |||
# will be created that you can edit. | |||
# message_template = ~/.nomadnetwork/print_template_msg.txt | |||
# You can configure Nomad Network to only | |||
# print messages from trusted destinations. | |||
# print_from = trusted | |||
# Or specify the source LXMF addresses that | |||
# will automatically have messages printed | |||
# on arrival. | |||
# print_from = 76fe5751a56067d1e84eef3e88eab85b, 0e70b5848eb57c13154154feaeeb89b7 | |||
# Or allow printing from anywhere, if you | |||
# are feeling brave and adventurous. | |||
# print_from = everywhere | |||
# You can configure the printing command. | |||
# This will use the default CUPS printer on | |||
# your system. | |||
print_command = lp | |||
# You can specify what printer to use | |||
# print_command = lp -d [PRINTER_NAME] | |||
# Or specify more advanced options. This | |||
# example works well for small thermal- | |||
# roll printers: | |||
# print_command = lp -d [PRINTER_NAME] -o cpi=16 -o lpi=8 | |||
# This one is more suitable for full-sheet | |||
# printers. It will print a QR code at the center of any media | |||
# your printer will accept, print in portrait mode, and move the message to | |||
# the top of the print queue: | |||
# print_command = lp -d [PRINTER_NAME] -o job-priority=100 -o media=Custom.75x75mm -o orientation-requested=3 | |||
# But you can modify the size to fit your needs. | |||
# The custom media option accepts millimeters, centimeters, and | |||
# inches in a width by length format like so: | |||
# -o media=Custom.[WIDTH]x[LENGTH][mm,cm,in] | |||
# | |||
# The job priority option accepts 1-100, though you can remove it | |||
# entirely if you aren't concerned with a print queue: | |||
# -o job-priority=[1-100] | |||
# | |||
# Finally, the orientation option allows for 90 degree rotations beginning with 3, so: | |||
# -o orientation-requested=4 (landscape, 90 degrees) | |||
# -o orientation-requested=5 (reverse portrait, 180 degrees) | |||
# | |||
# Here is the full command with the recommended customizable variables: | |||
# print_command = lp -d [PRINTER_NAME] -o job-priority=[N] -o media=[MEDIA_SIZE] -o orientation-requested=[N] -o sides=one-sided | |||
# For example, here's a configuration for USB thermal printer that uses the POS-58 PPD driver | |||
# with rolls 47.98x209.9mm in size: | |||
# print_command = lp -d [PRINTER_NAME] -o job-priority=100 -o media=custom_47.98x209.9mm_47.98x209.9mm -o sides=one-sided | |||
</pre> | |||
Si creaste la configuración en cualquiera de los directorios mencionados antes, podes ejectuar <code>nomadnet</code> directamente en tu terminal y ahí debería cargar la interfaz de texto que te permitirá comunicarte con la red. Es probable que tarde un rato en descubrir otros peers y nodes, así conviene dejarlo un rato ejecutándose después de abrirlo. | |||