Italiano English
Modifica History Actions

Differenze per "Libre-Mesh"

Differenze tra le versioni 62 e 64 (in 2 versioni)
Versione 62 del 2017-09-23 23:52:32
Dimensione: 19685
Autore: ilario
Commento: aggiornamento alla release 17.06
Versione 64 del 2020-12-15 15:29:49
Dimensione: 8930
Autore: ilario
Commento: update
Le cancellazioni sono segnalate in questo modo. Le aggiunte sono segnalate in questo modo.
Linea 1: Linea 1:
||<style="padding-right: 50px; width: 50%; border: none; vertical-align: bottom;"> Il [[http://libremesh.org/|firmware LibreMesh]] (precedentemente "Libre-Mesh") è il nuovo sistema operativo per router pensato per le community wireless nato dagli sforzi congiunti di italiani, spagnoli/catalani (Guifi.net) ed argentini (Altermundi) riuniti sotto il nome di, appunto, [[http://libremesh.org|LibreMesh]]. Precisamente il firmware LibreMesh è un insieme di moduli da aggiungere a [[ https://lede-project.org/ | LEDE ]] (un progetto parallelo al più famoso OpenWrt) per gestire il routing dinamico e altre funzioni necessarie ad una rete wireless mesh. <<BR>> <<BR>> LibreMesh viene attualmente utilizzato in Ninux da: <<BR>> - [[ http://verona.ninux.org/ | NinuxVerona ]] <<BR>> - [[ http://wiki.bologna.ninux.org | NinuxBO ]]|| <<TableOfContents()>> ||


'''Questa pagina potrebbe esser non aggiornata, in caso di dubbi fate riferimento alla guida ufficiale in [[ http://libremesh.org/docs/en_quick_starting_guide.html | inglese ]] o in [[ http://libremesh.org/docs/it_guida_rapida_per_iniziare.html | italiano ]].'''
||<style="padding-right: 50px; width: 50%; border: none; vertical-align: bottom;"> Il [[http://libremesh.org/|firmware LibreMesh]] (precedentemente "Libre-Mesh") è il nuovo sistema operativo per router pensato per le community wireless nato dagli sforzi congiunti di italiani, spagnoli/catalani (Guifi.net) ed argentini (Altermundi) riuniti sotto il nome di, appunto, [[https://libremesh.org|LibreMesh]]. Precisamente il firmware LibreMesh è un insieme di moduli da aggiungere a [[ https://openwrt.org/ | OpenWrt ]] per gestire il routing dinamico e altre funzioni necessarie ad una rete wireless mesh. <<BR>> <<BR>> LibreMesh viene attualmente utilizzato in Ninux da: <<BR>> - [[ http://verona.ninux.org/ | NinuxVerona ]] <<BR>> - [[ http://wiki.bologna.ninux.org | NinuxBO ]]|| <<TableOfContents()>> ||


'''Questa pagina potrebbe esser non aggiornata, in caso di dubbi fate riferimento alla guida ufficiale in [[ http://libremesh.org/docs/en_quick_starting_guide.html | inglese ]].'''
Linea 8: Linea 8:
LibreMesh supporta tutti i router che siano [[ https://lede-project.org/toh/start | supportati da LEDE]], ma potrebbe essere instabile su router particolarmente scarsi (ad esempio routers con solo 16 MB di RAM). Per poter utilizzare a pieno le funzioni di LibreMesh (principalmente il fatto di poter utilizzare la stessa interfaccia wireless contemporaneamente come access point e come punto di connessione alla rete mesh) è necessario utilizzare router che siano di [[https://github.com/libremesh/lime-sdk/blob/master/targets.list |specifiche architetture]]. Per andare sul sicuro è possibile consultare [[http://libremesh.org/docs/hardware/index.html|la pagina]] dei router che sono stati ampiamente utilizzati con LibreMesh dando buoni risultati.

== Scaricare il firmware già pronto ==

Il firmware LibreMesh con una configurazione pulita può esser scaricato dal sito ufficiale, la ultima versione si può scaricare da [[ http://downloads.libremesh.org/dayboot_rely/17.06/targets/ | qui]].
Per andare sul sicuro è possibile consultare [[https://libremesh.org/docs/hardware/index.html|la pagina]] dei router che sono stati ampiamente utilizzati con LibreMesh dando buoni risultati. Sulla stessa pagina son riportati i criteri che assicurano un buon funzionamento di LibreMesh su altri routers.
Linea 16: Linea 12:
Come tutti i software open source è possibile creare il proprio file compilato partendo dal codice sorgente. È stato sviluppato un software, chiamato lime-sdk, appositamente per semplificare il processo e abbastanza flessibile da coprire tutte le esigenze. Qui viene riportata anche la procedura manuale tradizionale, che non dovrebbe esser mai necessaria.

=== Prerequisiti ===

Procuratevi un computer con GNU/Linux che abbia una decina di GB liberi sull'hard disk ed installate i pacchetti contenenti le dipendenze necessarie alla compilazione, ad esempio se state usando una distribuzione Linux che sia Debian-based (per esempio Ubuntu) potrete installarle dal terminale:

{{{
sudo apt-get install git subversion zlib1g-dev gawk flex unzip bzip2 gettext build-essential libncurses5-dev libncursesw5-dev libssl-dev binutils cpp psmisc docbook-to-man wget git
}}}

oppure selezionando gli stessi pacchetti dall'apposita interfaccia grafica.

Se avete altre distro GNU/Linux e non trovate i nomi corretti dei pacchetti da installare, provate a compilare lo stesso, se incontrate errori tornate a questo punto e date un'occhiata a [[https://lede-project.org/docs/guide-developer/install-buildsystem || queste liste ]] di pacchetti utili.

=== Compilare con lime-sdk, la via raccomandata ===

Scaricate lime-sdk, che successivamente si occuperà di scaricare tutto il resto e di compilarlo:

{{{
git clone https://github.com/libremesh/lime-sdk.git
cd lime-sdk
}}}

Controllate la lista delle architetture supportate da LibreMesh:

{{{
./cooker --targets
}}}

Per sapere l'architettura adeguata, fate riferimento al campo "Target" e al campo "Subtarget" nella "Device Techdata" accessibile dalla [[https://lede-project.org/toh/start |Table of Hardware di LEDE]] relativa al vostro router.

Dunque trovate il vostro router nella lista dei modelli supportati con quella architettura, la lista può essere visualizzata con:

{{{
./cooker --profiles=target/subtarget
}}}

Ad esempio in caso di Ubiquiti NanoStation M5 XM i valori sono ''ar71xx'' come target e ''generic'' come subtarget, lanciando

{{{
./cooker --profiles=ar71xx/generic
}}}

potete trovare che ci si deve riferire al modello con ''ubnt-nano-m'' ed a questo punto si può compilare l'immagine con

{{{
./cooker -c ar71xx/generic --profile=ubnt-nano-m --flavor=lime_default
}}}

Il parametro flavor serve per selezionare diversi gruppi di moduli di LibreMesh:

* ''lime_default'' semplicemente seleziona tutti i moduli di cui si suggerisce l'utilizzo
* ''lime_zero'' seleziona meno moduli, da notare l'assenza dell'interfaccia web, dunque il router diventa accessibile solo via SSH
* ''lime_mini'' seleziona meno moduli, da notare l'assenza del gestore dei pacchetti opkg, dunque non si potranno installare nuovi pacchetti senza reinstallare un nuovo firmware nel router

''lime_mini'' e ''lime_zero'' servono per avere una immagine più piccola di 4 MB, necessaria per i router con una memoria flash di soli 4 MB.

Le immagini prodotte si troveranno nella cartella "output".

Altre opzioni per l'uso di lime-sdk possono essere trovate [[ https://github.com/libremesh/lime-sdk/blob/master/README.md | qui ]].

=== Moduli inclusi in diversi flavor di LibreMesh ===
Non è necessario conoscere i pacchetti che compongono LibreMesh, a meno di non aver bisogno di aggiungere funzionalità supportate ma non incluse normalmente.

|| '''Modulo''' || '''Descrizione in Inglese''' || '''Descrizione in Italiano''' || '''Selezionato in lime_mini?''' || '''Selezionato in lime_zero?''' || '''Selezionato in lime_default?''' ||
||batman-adv-auto-gw-mode || Set batman-adv gw_mode by internet availability || Cambia il fatto che batman-adv consideri il nodo come gateway in base alla presenza di connettività verso internet sua e degli altri nodi || No || No || No ||
||bmx6-auto-gw-mode|| bmx6 auto Internet gateway module || Cambia il fatto che BMX6 consideri il nodo come gateway in base alla presenza di connettività verso internet || Sì || Sì || Sì ||
||dnsmasq-distributed-hosts|| Share /etc/hosts file accross all nodes of a mesh with enabled alfred || Sincronizza il contenuto di /etc/hosts in cui si possono impostare record DNS statici || Sì || Sì || Sì ||
||dnsmasq-lease-share|| dnsmasq lease sharing accross mesh || Condivide la lista dei lease (IP assegnati dal DHCP) a tutti i nodi con Alfred || Sì || Sì || Sì ||
||lime-ap-watchping || Watchping hooks to manage AP SSID if network problems || Cambia il nome dell'access point in caso non ci sia connettività || No || No || No ||
||lime-debug|| LibreMesh debug utils || Un paio di script utili (batctl e sprunge) || No || No || Sì ||
||lime-docs|| LibreMesh English documentation || Documentazione offline in inglese || No || No || Sì ||
||lime-docs-it|| LibreMesh Italian documentation || Documentazione offline in italiano || No || No || No ||
||lime-docs-minimal|| LibreMesh minimal documentation || Documentazione minimale offline in inglese || Sì || Sì || Sì ||
||lime-hwd-ground-routing|| Manage 8021q VLANs for ground routing || Supporto per il routing a terra || Sì || Sì || Sì ||
||lime-hwd-openwrt-wan|| Respect openwrt wan interface as default || La classica porta WAN dei router si comporterà da porta WAN || Sì || Sì || Sì ||
||lime-hwd-usbradio|| LiMe hardware detection usb radio support || Per usare antenne connesse via USB || No || No || No ||
||lime-map-agent|| LiMe LibreMap agent || Aggiorna un sito web con la mappa dei nodi || No || No || Sì ||
||lime-proto-anygw|| LiMe anygw proto support || Tutte le antenne annunciano lo stesso gateway fittizio ai client per poi dirigere i dati verso il gateway più conveniente. || Sì || Sì || Sì ||
||lime-proto-batadv|| LiMe batman-adv proto support || Supporto al routing layer 2 tramite Batman advanced || Sì || Sì || Sì ||
||lime-proto-bgp|| LiMe BGP proto support || Supporto al routing layer 3 tramite BGP || No || No || No ||
||lime-proto-bmx6|| LiMe Bmx6 proto support || Supporto al routing layer 3 tramite BMX6 || Sì || Sì || Sì ||
||lime-proto-olsr|| LiMe OLSR proto support (IPv4) || Supporto al routing layer 3 tramite OLSR v1 per IPv4 || No || No || No ||
||lime-proto-olsr6|| LiMe OLSR proto support (IPv6) || Supporto al routing layer 3 tramite OLSR v1 per IPv6 || No || No || No ||
||lime-proto-olsr2|| LiMe OLSR2 proto support (IPv4 e IPv6) || Supporto al routing layer 3 tramite OLSR v2 per IPv4 e IPv6 || No || No || No ||
||lime-proto-wan|| LiMe wan proto support || Supporta la possibilità di impostare una porta a scelta del router come "porta WAN" || Sì || Sì || Sì ||
||lime-system|| LibreMesh system files || Questo è il cuore di LibreMesh || Si || Sì || Sì ||
||lime-webui|| LibreMesh web user interface based on LUCI || Aggiunge una tabella per LibreMesh alla interfaccia web || Sì || No || Sì ||
||safe-reboot||falls back to a last-known-good config after an ill-fated reboot || Una volta lanciato permette di fare cambi rischiosi e se va male tornare automaticamente alla configurazione precedente || No || No || Sì ||
||opkg|| Package manager || Per installare nuovi pacchetti dopo della prima installazione || No || Sì || Sì ||

=== Compilare partendo dal codice sorgente di LEDE, la via manuale e complessa ===

Aprite un terminale e scaricate il codice sorgente della ultima release stabile di LEDE: la 17.01 aka Reboot:

{{{
git clone -b lede-17.01 https://git.lede-project.org/source.git lede
}}}

==== Aggiungere i sorgenti di LibreMesh ====

Sempre da terminale entrate nella cartella appena scaricata, copiate il file esempio con le fonti supplementari di sorgenti

{{{
cd lede
cp feeds.conf.default feeds.conf
}}}

ed aggiungete gli indirizzi dei sorgenti di LibreMesh.

{{{
echo "src-git lime https://github.com/libremesh/lime-packages.git;17.06" >> feeds.conf
}}}

Se volete testare un branch particolare di lime-packages, ad esempio il branch "develop", aggiungete ";develop", ad esempio, invece della riga precedente, potete fare così:

{{{
echo "src-git lime https://github.com/libremesh/lime-packages.git;develop" >> feeds.conf
}}}

Dunque scaricate e posizionate i sorgenti di LibreMesh:

{{{
scripts/feeds update -a
scripts/feeds install -a
}}}

==== Selezionare i moduli di LibreMesh ====

Aprite il menù di selezione dei software da compilare e da inserire nell'immagine.

{{{
make menuconfig
}}}

Entra nella voce "Base system" e deseleziona la voce "dnsmasq" e seleziona "dnsmasq-dhcpv6" (che a differenza del precedente supporta sia IPv4 che IPv6) premendo il bottone spazio, esci premendo Esc per due volte e entra nella sezione "Network", dunque deseleziona "odhcpd" (da non confondere con "odhcp6c" che si può lasciare, il problema con "odhcpd" è la coesistenza con "dnsmasq": avendoli entrambi si possono avere due server dhcp con lo stesso compito), esci premendo Esc per due volte ed entra nella sezione "LiMe".

Nel menù "LiMe" '''si può selezionare "Collections/lime-full" per avere la raccolta standard dei pacchetti suggeriti dal team di LibreMesh''', questa è la scelta raccomandata, altrimenti si può selezionare solo i pacchetti necessari per il caso specifico.

Se si vuole limitare le immagini che verranno prodotte a solo quelle che servono, si può selezionare il proprio router nei menù "Target system" e "Target profile", altrimenti basta lasciare i target di default e tutte le immagini (almeno quelle per ar71xx) verranno prodotte.

Salvare la configurazione premendo Esc fino a vedere una richiesta di "esci salvando?" salva ed esci.

==== Lanciare la compilazione ====

Per iniziare il processo vero e proprio di compilazione dare il comando "make":

{{{
make
}}}

==== Recuperare il file prodotto ====

I file compilati si trovano nella cartella ''bin'' e solitamente hanno dei nomi indicativi per l'hardware a cui sono adatti.
Come tutti i software open source è possibile creare il proprio file compilato partendo dal codice sorgente. Seguire le istruzioni sulla pagina https://libremesh.org/development.html
Linea 175: Linea 18:
Per installare il firmware, come prima cosa è consigliato provar a utilizzare l'interfaccia web del firmware propinandogli, come fosse un aggiornamento, l'immagine di LibreMesh adatta a quel router ed indicata come "factory".

In caso l'interfaccia web non accetti la nostra immagine è necessario seguire le [[https://lede-project.org/docs/guide-quick-start/factory_installation| istruzioni generiche descritte sul sito di LEDE ]] per l'installazione di LEDE o le istruzioni specifiche indicate sulle [[ https://lede-project.org/toh/start | pagine relative ai singoli router ]].
È necessario seguire le [[ https://openwrt.org/toh/start | istruzioni specifiche per ogni modello di router descritte sul sito di OpenWrt ]] per l'installazione di OpenWrt.
Linea 219: Linea 60:
Date un'occhiata al contenuto del file "/etc/config/lime":

{{{
cat /etc/config/lime
}}}

per modificare il file di configurazione "/etc/config/lime" si usa solitamente l'editor di testo vim:

{{{
vim /etc/config/lime
Date un'occhiata al contenuto del file "/etc/config/lime-node":

{{{
cat /etc/config/lime-node
}}}

Il file dovrebbe essere piuttosto vuoto, dunque le opzioni di default sono quelle in uso.
Tutte le opzioni commentate si possono trovare nel router in "/docs/lime-example.txt"

{{{
less /docs/lime-example.txt
}}}

o, sempre sul router, su http://thisnode.info/docs/lime-example.txt o online qui: https://github.com/libremesh/lime-packages/blob/master/packages/lime-docs/files/www/docs/lime-example.txt

Per modificare il file di configurazione "/etc/config/lime-node" si usa solitamente l'editor di testo vim:

{{{
vim /etc/config/lime-node
Linea 251: Linea 101:
Per applicare le modifiche effettuate nel file ''/etc/config/lime'' è necessario lanciare: Per applicare le modifiche effettuate nel file ''/etc/config/lime-node'' è necessario lanciare:
Linea 260: Linea 110:
reboot && exit reboot
Linea 265: Linea 115:
LibreMesh supporta anche il routing a terra (chiamato anche ground routing) un esempio di configurazione è presente nel file ''/docs/lime-example'' e consta di poche righe per ogni antenna da gestire. [[http://wiki.ninux.org/Libre-Mesh/Ground%20routing |Qui]] le istruzioni in italiano. LibreMesh supporta anche il routing a terra (chiamato anche ground routing) un esempio di configurazione è presente nel file ''/docs/lime-example.txt'' e consta di poche righe per ogni antenna da gestire. [[http://wiki.ninux.org/Libre-Mesh/Ground%20routing |Qui]] le istruzioni in italiano.
Linea 285: Linea 135:
si verifica che l'immagine si sia copiata correttamente confrontandola con il file sha1sum presente nella cartella di compilazione: si verifica che l'immagine si sia copiata correttamente confrontandola con il file sha256sums presente nella cartella di compilazione:
Linea 289: Linea 139:
sha1sum nome_immagine-sysupgrade.bin
}}}

dunque si aggiorna il firmware installato sovrascrivendolo con l'immagine nuova:
sha256sum nome_immagine-sysupgrade.bin
}}}

dunque si aggiorna il firmware installato sovrascrivendolo con l'immagine nuova.
Ci son due modi per farlo, eliminando la precedente configurazione o preservandola.

Eliminando la precedente configurazione
:
Linea 298: Linea 150:
è importante utilizzare l'opzione -n per non preservare la configurazione vecchia sia di LEDE sia di LibreMesh.

Se si vogliono mantenere le configurazioni di LibreMesh si deve utilizzare il comando lime-sysupgrade:
Preservando la precedente configurazione:
Linea 306: Linea 155:
Linea 309: Linea 157:
Potete controllare che due nodi siano connessi controllando le tabelle di routing dei protocolli utilizzati, ossia [[ http://www.open-mesh.org/projects/batman-adv/wiki/Wiki | BATMAN-advanced ]] e [[ http://bmx6.net | BMX6 ]]: Potete controllare che due nodi siano connessi controllando le tabelle di routing dei protocolli utilizzati, ossia [[ http://www.open-mesh.org/projects/batman-adv/wiki/Wiki | BATMAN-advanced ]] e [[ https://www.irif.fr/~jch/software/babel/ | Babeld ]]:
Linea 313: Linea 161:
bmx6 -c show=originators echo dump | nc ::1 30003
Linea 320: Linea 168:
Mailing list: iscrivetevi alla [[ https://lists.libremesh.org/mailman/listinfo/lime-dev | mailing list ]] degli sviluppatori o alla [[ https://lists.libremesh.org/mailman/listinfo/lime-users | mailing list]] degli utenti e segnalate il problema, preferibilmente ma non obbligatoriamente in inglese.

Chat room: su Freenode abbiamo una chat room #libremesh, ci si può accedere tramite un client IRC oppure via web da [[ https://webchat.freenode.net/ | qui ]].

Segnalazioni: si possono inviare alla [[https://lists.libremesh.org/mailman/listinfo/lime-dev | mailing list degli sviluppatori]] oppure si può registrarsi sul sito di GitHub dunque segnalare il problema tramite [[ https://github.com/libremesh/lime-packages/issues/new | questa pagina ]].
Mailing list: iscrivetevi alla [[ https://lists.libremesh.org/mailman/listinfo/lime-users | mailing list]] e segnalate il problema, preferibilmente ma non obbligatoriamente in inglese.

Chat room: su Freenode abbiamo una chat room #libremesh-dev che si può più comodamente accedere tramite Element (una app di chat sicura), seguire i link su: https://libremesh.org/communication.html

Segnalazioni: si può registrarsi sul sito di GitHub dunque segnalare il problema tramite [[ https://github.com/libremesh/lime-packages/issues/new | questa pagina ]].
Linea 336: Linea 184:
si riceveranno risposte da tutte le interfacce, compresa la propria ed alcune interfacce virtuali sul router. L'IPv6 Link Local che ci interessa si può riconoscere perché contiene alla fine dell'indirizzo il MAC address del router solitamente indicato anche sul router stesso. Ad esempio nel caso il proprio router abbia un mac address dc:9f:db:31:c1:36, vedremo un IPv6 Link Local che lo contiene qui sotto: ping6 potrebbe chiamarsi ping sul vostro sistema, ed eth0 potrebbe chiamarsi enp0s25 o qualcosa del genere.

S
i riceveranno risposte da tutte le interfacce, compresa la propria ed alcune interfacce virtuali sul router. L'IPv6 Link Local che ci interessa si può riconoscere perché contiene alla fine dell'indirizzo il MAC address del router solitamente indicato anche sul router stesso. Ad esempio nel caso il proprio router abbia un mac address dc:9f:db:31:c1:36, vedremo un IPv6 Link Local che lo contiene qui sotto:

Il firmware LibreMesh (precedentemente "Libre-Mesh") è il nuovo sistema operativo per router pensato per le community wireless nato dagli sforzi congiunti di italiani, spagnoli/catalani (Guifi.net) ed argentini (Altermundi) riuniti sotto il nome di, appunto, LibreMesh. Precisamente il firmware LibreMesh è un insieme di moduli da aggiungere a OpenWrt per gestire il routing dinamico e altre funzioni necessarie ad una rete wireless mesh.

LibreMesh viene attualmente utilizzato in Ninux da:
- NinuxVerona
- NinuxBO

Questa pagina potrebbe esser non aggiornata, in caso di dubbi fate riferimento alla guida ufficiale in inglese.

Devices supportati da LibreMesh

Per andare sul sicuro è possibile consultare la pagina dei router che sono stati ampiamente utilizzati con LibreMesh dando buoni risultati. Sulla stessa pagina son riportati i criteri che assicurano un buon funzionamento di LibreMesh su altri routers.

Prodursi una immagine di LibreMesh

Come tutti i software open source è possibile creare il proprio file compilato partendo dal codice sorgente. Seguire le istruzioni sulla pagina https://libremesh.org/development.html

Il prossimo passo è installare, anche detto flashare, l'immagine adatta sul proprio router, come far questo viene accennato più avanti nella sezione "Flashing".

Flashing

È necessario seguire le istruzioni specifiche per ogni modello di router descritte sul sito di OpenWrt per l'installazione di OpenWrt.

Prima connessione

Da interfaccia web

-- guida da scrivere --

Da terminale

Utilizzando il terminale Linux è comodo connettersi utilizzando l'indirizzo thisnode.info che è impostato in tutti i router LibreMesh.

Appena installato LibreMesh non ha una password di amministratore, dunque ci si connette via SSH a thisnode.info tramite interfaccia web su http://thisnode.info per impostarla.

Da interfaccia web è presente un banner che aiuta a impostare la password di amministratore, da terminale invece ci si connette con:

ssh root@thisnode.info

e si imposta la password tramite il comando

passwd

dunque si riavvia con

reboot && exit

e si può proseguire con la configurazione.

Configurazione

Da interfaccia web

-- guida da scrivere --

Da terminale

La configurazione da utilizzare può essere leggermente differente tra le diverse isole, la configurazione di default va bene in generale.

Date un'occhiata al contenuto del file "/etc/config/lime-node":

cat /etc/config/lime-node

Il file dovrebbe essere piuttosto vuoto, dunque le opzioni di default sono quelle in uso. Tutte le opzioni commentate si possono trovare nel router in "/docs/lime-example.txt"

less /docs/lime-example.txt

o, sempre sul router, su http://thisnode.info/docs/lime-example.txt o online qui: https://github.com/libremesh/lime-packages/blob/master/packages/lime-docs/files/www/docs/lime-example.txt

Per modificare il file di configurazione "/etc/config/lime-node" si usa solitamente l'editor di testo vim:

vim /etc/config/lime-node

si abilita la modalità di modifica in vim premendo i, dopo aver modificato il file si esce dalla modalità di modifica premendo Esc e si salva premendo :wq e Invio uno dopo l'altro.

Ad esempio perché il nome della rete wireless access point sia "ninux.org" e il canale wireless sui 2.4GHz sia il numero 6, nel file "lime" ci deve essere:

config lime wifi
        option channel_2ghz '6'
        option ap_ssid 'ninux.org'

oppure per impostare gli ip

config lime network
        option main_ipv4_address '10.10.10.11/21'
        option main_ipv6_address '2a00:1:1:1::11/64'

e questa impostazione avrà la priorità rispetto a quella corrispondente contenuta in "lime-defaults".

Per applicare le modifiche effettuate nel file /etc/config/lime-node è necessario lanciare:

lime-config

E riavviare l'apparato:

reboot

Routing a terra

LibreMesh supporta anche il routing a terra (chiamato anche ground routing) un esempio di configurazione è presente nel file /docs/lime-example.txt e consta di poche righe per ogni antenna da gestire. Qui le istruzioni in italiano.

Aggiornamento

Da interfaccia web

-- guida da scrivere --

Da terminale

Per aggiornare LibreMesh su un device l'immagine contenente nel nome "sysupgrade" va copiata tramite scp o rsync usando thisnode.info.

scp nome_immagine-sysupgrade.bin root@thisnode.info:/tmp

Dunque si entra sull'antenna con ssh:

ssh root@thisnode.info

si verifica che l'immagine si sia copiata correttamente confrontandola con il file sha256sums presente nella cartella di compilazione:

cd /tmp
sha256sum nome_immagine-sysupgrade.bin

dunque si aggiorna il firmware installato sovrascrivendolo con l'immagine nuova. Ci son due modi per farlo, eliminando la precedente configurazione o preservandola.

Eliminando la precedente configurazione:

sysupgrade -n nome_immagine-sysupgrade.bin

Preservando la precedente configurazione:

lime-sysupgrade nome_immagine-sysupgrade.bin

Testing

Potete controllare che due nodi siano connessi controllando le tabelle di routing dei protocolli utilizzati, ossia BATMAN-advanced e Babeld:

batctl o
echo dump | nc ::1 30003

Debugging

Essendo LibreMesh un firmware ancora sotto intenso sviluppo potrebbe presentare alcuni problemi, gli utenti sono incoraggiati a segnalare i problemi agli sviluppatori in modo che questi possano risolverli. I canali consigliati per la segnalazione e discussione di problemi sono:

Mailing list: iscrivetevi alla mailing list e segnalate il problema, preferibilmente ma non obbligatoriamente in inglese.

Chat room: su Freenode abbiamo una chat room #libremesh-dev che si può più comodamente accedere tramite Element (una app di chat sicura), seguire i link su: https://libremesh.org/communication.html

Segnalazioni: si può registrarsi sul sito di GitHub dunque segnalare il problema tramite questa pagina.

Connessione d'emergenza

Un metodo che non fallisce quasi mai per connettersi al router è utilizzando l'indirizzo IPv6 Link Local.

Essendo connessi con un cavo ethernet al router lanciare il comando

ping6 ff02::1%eth0

ping6 potrebbe chiamarsi ping sul vostro sistema, ed eth0 potrebbe chiamarsi enp0s25 o qualcosa del genere.

Si riceveranno risposte da tutte le interfacce, compresa la propria ed alcune interfacce virtuali sul router. L'IPv6 Link Local che ci interessa si può riconoscere perché contiene alla fine dell'indirizzo il MAC address del router solitamente indicato anche sul router stesso. Ad esempio nel caso il proprio router abbia un mac address dc:9f:db:31:c1:36, vedremo un IPv6 Link Local che lo contiene qui sotto:

$ ping6 ff02::1%eth0
PING ff02::1%eth0(ff02::1) 56 data bytes
64 bytes from fe80::21e:8cff:fe66:1e2c: icmp_seq=1 ttl=64 time=0.023 ms
64 bytes from fe80::de9f:dbff:fe37:28a9: icmp_seq=1 ttl=64 time=0.606 ms (DUP!)
64 bytes from fe80::de9f:dbff:fe31:c136: icmp_seq=1 ttl=64 time=0.607 ms (DUP!)
64 bytes from fe80::a8aa:aaff:feaa:aaaa: icmp_seq=1 ttl=64 time=0.851 ms (DUP!)
64 bytes from fe80::de9f:dbff:feee:8bda: icmp_seq=1 ttl=64 time=1.01 ms (DUP!)
64 bytes from fe80::a8aa:aaff:feaa:aaaa: icmp_seq=1 ttl=64 time=1.08 ms (DUP!)
64 bytes from fe80::216:eaff:fec1:7553: icmp_seq=1 ttl=64 time=11.8 ms (DUP!)

ossia l'IPv6 corrispondente al mac address del nostro device è fe80::de9f:dbff:fe31:c136 e ci si connette utilizzando ssh:

ssh root@fe80::de9f:dbff:fe31:c136%eth0

Altre guide