19698
Commento: Aggiornato da BB a CC
|
19685
aggiornamento alla release 17.06
|
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://libre-mesh.org/projects/libre-mesh|firmware Libre-Mesh]] è il nuovo sistema operativo per router pensato per le community wireless nato dagli sforzi congiunti di italiani, spagnoli ed argentini riuniti sotto il nome di, appunto, [[http://libre-mesh.org|Libre-Mesh]]. Precisamente il firmware Libre-Mesh è un insieme di moduli da aggiungere a [[ http://openwrt.org/ | OpenWrt ]] per gestire il routing dinamico e altre funzioni necessarie per gestire una rete wireless mesh. <<BR>> <<BR>> Libre-Mesh viene attualmente utilizzato in Ninux da: <<BR>> - [[ http://verona.ninux.org/ | NinuxVerona ]] <<BR>> - [[ http://wiki.bologna.ninux.org | NinuxBO ]]|| <<TableOfContents()>> || |
||<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 ]].''' == Devices supportati da LibreMesh == 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. |
Linea 8: | Linea 12: |
Il firmware libre-mesh può essere scaricato dai repository delle singole isole Ninux che usino Libre-Mesh. == Prodursi una immagine di Libre-Mesh == Come tutti i software open source è possibile creare il proprio file compilato partendo dal codice sorgente. === Devices supportati da Libre-Mesh === Libre-Mesh supporta tutti i router che siano [[ http://wiki.openwrt.org/toh/start | supportati da OpenWrt ]], potrebbe essere instabile su router particolarmente scarsi. === Compilare === Compilare vuol dire creare il proprio file di installazione di Libre-Mesh partendo dal codice sorgente scritto dai suoi sviluppatori e reperibile pubblicamente. ==== 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 potrete installarle dal terminale (dopo aver ottenuto i privilegi di amministratore): {{{ apt-get install git build-essential libncurses5-dev zlib1g-dev gawk subversion }}} oppure selezionando gli stessi pacchetti dall'apposito software grafico. 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 [[ http://wiki.openwrt.org/doc/howto/buildroot.exigence#examples_of_package_installations | queste liste ]] di pacchetti utili. ==== Ottenere il codice sorgente di OpenWrt ==== Aprite un terminale e scaricate il codice sorgente della ultima release stabile di OpenWrt: la 15.05 aka ChaosCalmer: {{{ git clone git://git.openwrt.org/15.05/openwrt.git }}} ==== Aggiungere i sorgenti di Libre-Mesh ==== |
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]]. == Prodursi una immagine di LibreMesh == 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 ==== |
Linea 47: | Linea 120: |
cd openwrt | cd lede |
Linea 51: | Linea 124: |
ed aggiungete gli indirizzi dei sorgenti di Libre-Mesh. Le varie isole Ninux potrebbero indicare una sorgente pre-configurata. Libre-Mesh standard: {{{ echo "src-git lime https://github.com/libre-mesh/lime-packages.git" >> feeds.conf }}} Libre-Mesh preconfigurato per NinuxVerona: {{{ echo "src-git lime https://github.com/VeronaWirelessCommunity/lime-packages.git" >> feeds.conf }}} Se volete testare un branch particolare di lime-packages, ad esempio il branch "15.07", aggiungete ";15.07", ad esempio, invece della riga precedente, potete fare così: {{{ echo "src-git lime https://github.com/libre-mesh/lime-packages.git;release/15.07" >> feeds.conf }}} Dunque scaricate e posizionate i sorgenti di Libre-Mesh: |
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: |
Linea 78: | Linea 143: |
Se ottenete degli errori tipo "No feed for package" probabilmente non avete installato le dipendenze come [[#Prerequisiti | indicato sopra]]. ==== Selezionare i moduli di Libre-Mesh ==== |
==== Selezionare i moduli di LibreMesh ==== |
Linea 88: | Linea 151: |
Entra nella voce "Base system" e deseleziona la voce "dnsmasq" e seleziona "dnsmasq-dhcpv6" (che a differenza del precedente supporta sia IPv4 che IPv6) e la voce "firewall" (perché alcuni sviluppatori di Libre-Mesh sostengono che dia più problemi che vantaggi) 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" seleziona quel che ti serve, l'esempio di un Libre-Mesh che fa routing solo a layer2 può essere "lime-system, lime-proto-batadv, lime-debug". Segue una tabella con la descrizione in inglese e italiano dei moduli selezionabili: || '''Modulo''' || '''Descrizione in Inglese''' || '''Descrizione in Italiano''' || '''Lo voglio?''' || ||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 || Se usi Batman-adv sì || ||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 || Se usi BMX6 sì || ||dnsmasq-lease-share|| dnsmasq lease sharing accross batman-adv mesh || Condivide la lista dei lease (IP assegnati dal DHCP) a tutti i nodi con Alfred (presente in Batman-adv) || Se usi Batman-adv (e se funziona davvero, da provare) || ||lime-altermesh|| AlterMesh metapackage using LiMe codebase || || No. || ||lime-debug|| libre-mesh debug utils || Un paio di script utili (batctl e sprunge) || Sì! || ||lime-eb-ip-tables|| libre-mesh iptables/ebtables support || || Mah? || ||lime-full|| libre-mesh metapackage || Seleziona un elenco predefinito di pacchetti. || Meglio di no, ma si può fare. || ||lime-hwd-ground-routing|| Manage 8021q VLANs for ground routing || Supporto per il routing a terra || Sì, male non fa, se non serve basta non configurarlo. || ||lime-hwd-openwrt-wan|| Respect openwrt wan interface as default || La classica porta WAN dei router si comporterà da porta WAN || Sì! || ||lime-hwd-usbradio|| LiMe hardware detection usb radio support || Per usare antenne connesse via USB || Solo se hai questi device || ||lime-map-agent|| LiMe LibreMap agent || || No. || ||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. || Se usate routing a layer 3 come BMX6 o OLSR (?) potrebbe servirvi. || ||lime-proto-batadv|| LiMe batman-adv proto support || Supporto al routing layer 2 tramite Batman advanced || Sì se la tua isola Ninux usa Batman-adv || ||lime-proto-bmx6|| LiMe Bmx6 proto support || Supporto al routing layer 3 tramite BMX6 || Sì se la tua isola Ninux usa BMX6 || ||lime-proto-eigennet|| LiMe eigennet legacy compatibility proto support || || No. || ||lime-proto-olsr|| LiMe OLSR proto support (IPv4) || Supporto al routing layer 3 tramite OLSR v1 per IPv4 || Sì se la tua isola Ninux usa OLSR || ||lime-proto-olsr6|| LiMe OLSR proto support (IPv6) || Supporto al routing layer 3 tramite OLSR v1 per IPv6 || Sì se la tua isola Ninux usa OLSR || ||lime-proto-qmp|| LiMe qmp proto legacy compatibility support || || No. || ||lime-proto-wan|| LiMe wan proto support || Supporta la possibilità di impostare una porta a scelta del router come "porta WAN" || Sì, male non fa, se non serve basta non configurarlo. || ||lime-system|| libre-mesh system files || Questo è il cuore di Libre-Mesh || Si! || ||lime-webui|| libre-mesh web user interface based on LUCI || Aggiunge una tabella per Libre-Mesh alla interfaccia web || Sì, anche se per ora è un po' vuota. || ||reghack|| Regulatory domain unlocker || Leggi? Regolamentazioni? Cosa sono? || No. Pare non funzioni più, meglio evitarlo. || |
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. |
Linea 122: | Linea 159: |
==== Configurare pre-compilazione (opzionale) ==== Alcune configurazioni possono essere inserite già nell'immagine, questo è comodo nel caso si dovesse mettere questa immagine su molti router e non si volesse configurarli poi uno ad uno dopo l'installazione. Modificare, con il proprio editor di testo preferito, il file in {{{ feeds/lime/packages/lime-system/files/etc/config/lime-defaults }}} Le righe che iniziano con cancelletto non hanno effetto. Ad esempio, se volessi preimpostare i prefissi di IP, il canale wireless e il nome della rete, il contenuto potrebbe essere: |
==== 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. Il prossimo passo è installare, anche detto flashare, l'immagine adatta sul proprio router, come far questo viene accennato più avanti nella sezione "Flashing". == Flashing == 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 ]]. == 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": {{{ 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 }}} 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 |
Linea 138: | Linea 245: |
option main_ipv4_address '198.51.100.%M6/24' # se l'ultimo campo è %M6 si autocompleta con il sesto campo del MAC address option main_ipv6_address '2001:db8:900d:c0de::%M5:%M6/64' # se gli ultimi campi sono %M5 e %M6 si autocompleta con il quinto e sesto campo del MAC address config lime wifi option channel_2ghz '3' option ap_ssid 'ninux.org' }}} ==== 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 {{{ cartelladiopenwrt/bin/ar71xx/... }}} e solitamente hanno dei nomi indicativi per l'hardware a cui sono adatti. Il prossimo passo è installare, anche detto flashare, l'immagine adatta sul proprio router, come far questo viene accennato più avanti nella sezione "Flashing". == Alternativa: prodursi una immagine usando lime-build (deprecato) == === Devices supportati da lime-build === I devices supportati sono quelli elencati in [[ https://github.com/libre-mesh/lime-build/blob/master/targets.mk | questo ]] file. Attenzione, alcuni devices non sono citati esplicitamente ma sono equivalenti ad alcuni elencati, ad esempio una Ubiquiti PicoStation M2 è (secondo il wiki di OpenWrt) equivalente ad una Ubiquiti Bullet dunque è supportata. Se il vostro router non sembra supportato chiedete nella [[ https://lists.libre-mesh.org/mailman/listinfo/dev | mailing list degli sviluppatori di Libre-Mesh ]] che qualcuno aggiunga il supporto. Teoricamente sono supportabili tutti i [[ http://wiki.openwrt.org/toh/start | devices supportati da OpenWrt ]] ed aggiungere il supporto è molto semplice. === Compilare con lime-build (deprecato) === 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 potrete installarle dal terminale (dopo aver ottenuto i privilegi di amministratore): {{{ apt-get install git build-essential libncurses5-dev zlib1g-dev gawk subversion }}} oppure selezionando gli stessi pacchetti dall'apposito software grafico. 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 [[ http://wiki.openwrt.org/doc/howto/buildroot.exigence#examples_of_package_installations | queste liste ]] di pacchetti utili. Dunque scaricate lime-build, che successivamente si occuperà di scaricare tutto il resto e di compilarlo: {{{ git clone https://github.com/libre-mesh/lime-build.git }}} Controllate la lista dei router supportati da lime-build e trovate il vostro modello (o uno equivalente): {{{ make list_targets }}} Compilate l'immagine per il vostro target, indicandolo dopo T=. Ad esempio per compilare una immagine per una Ubiquiti NanoStation M5 potete lanciare: {{{ make T=nsm5 build }}} Per utilizzare un branch differente da quello di default (ad esempio per testare delle feature ancora non completate) si può scegliere il branch desiderato dalla apposita [[ https://github.com/libre-mesh/lime-packages/branches/all | lista dei branch ]] ed impostarlo con: {{{ make LIME_GIT_BRANCH="feature/blablabla" update_all }}} dunque compilare come indicato sopra. Le immagini prodotte si troveranno nella cartella "images". Altre opzioni per l'uso di lime-build possono essere trovate [[ https://github.com/libre-mesh/lime-build/blob/master/README.md | qui ]]. == Flashing == Per installare il firmware, come prima cosa è consigliato provar a utilizzare l'interfaccia web del firmware propinandogli, come fosse un aggiornamento, l'immagine di Libre-Mesh adatta a quel router ed indicata come "factory". In caso l'interfaccia web non accetti la nostra immagine è necessario seguire le [[ http://wiki.openwrt.org/doc/howto/generic.flashing | istruzioni generiche descritte sul sito di OpenWrt ]] per l'installazione di OpenWrt o le istruzioni specifiche indicate sulle [[ http://wiki.openwrt.org/toh/start | pagine relative ai singoli router ]]. == Prima connessione == |
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'' è necessario lanciare: {{{ lime-config }}} E riavviare l'apparato: {{{ reboot && exit }}} ==== Routing a terra ==== 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. == Aggiornamento == |
Linea 225: | Linea 269: |
Linea 228: | Linea 271: |
Linea 231: | Linea 273: |
Utilizzando il terminale Linux è comodo connettersi utilizzando l'IPv6 Link Local. Essendo connessi con un cavo ethernet al router lanciare il comando | 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 sha1sum presente nella cartella di compilazione: {{{ cd /tmp sha1sum nome_immagine-sysupgrade.bin }}} dunque si aggiorna il firmware installato sovrascrivendolo con l'immagine nuova: {{{ sysupgrade -n nome_immagine-sysupgrade.bin }}} è 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: {{{ lime-sysupgrade nome_immagine-sysupgrade.bin }}} == Testing == 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 ]]: {{{ batctl o bmx6 -c show=originators }}} == 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 [[ 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 ]]. == 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 |
Linea 251: | Linea 350: |
ossia l'IPv6 corrispondente al mac address del nostro device è fe80::de9f:dbff:fe31:c136 Appena installato Libre-Mesh non ha una password, dunque ci si connette via telnet per impostarla, utilizzando l'IPv6 Link Local ed indicando l'interfaccia utilizzata per connettersi. {{{ telnet fe80::de9f:dbff:fe31:c136%eth0 }}} e si imposta la password tramite il comando {{{ passwd }}} dunque si riavvia con {{{ reboot && exit }}} e ci si connette utilizzando ssh: |
ossia l'IPv6 corrispondente al mac address del nostro device è fe80::de9f:dbff:fe31:c136 e ci si connette utilizzando ssh: |
Linea 277: | Linea 356: |
dunque 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 per il testing. Date un'occhiata al contenuto del file "/etc/config/lime-defaults", queste sono le configurazioni che vengono applicate sempre, questo file non va modificato: {{{ cat /etc/config/lime-defaults }}} se qualcuna delle impostazioni in questo files non vi piacesse potete inserirla modificata nel file "/etc/config/lime", ad esempio perché il nome della rete wireless access point sia "ninux.org" e il canale wireless sui 2.4GHz sia il numero 3, nel file "lime" andrà inserito: {{{ config lime wifi option channel_2ghz '3' 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". Dunque per modificare il file di configurazione "/etc/config/lime" si usa solitamente l'editor di testo vim: {{{ vim /etc/config/lime }}} entrare nella modalità modifica premendo "i", modificare il file e salvare premendo in successione il tasto "Esc" (per uscire dalla modalità di modifica) e dunque i tasti ":wq". Far leggere il contenuto del file "lime": {{{ lime-config }}} Infine applicare le modifiche pendenti nei file di configurazione di OpenWrt: {{{ uci commit }}} E riavviare l'apparato: {{{ reboot && exit }}} ==== Routing a terra ==== Libre-Mesh supporta anche il routing a terra (chiamato anche ground routing), tramite il pacchetto "lime-hwd-ground-routing", un esempio di configurazione è presente nel file "/etc/config/lime" e consta di poche righe per ogni antenna da gestire. [[http://wiki.ninux.org/Libre-Mesh/Ground%20routing |Qui]] le istruzioni in italiano e [[http://libre-mesh.org/projects/libre-mesh/wiki/Ground_routing |qui]] le istruzioni in inglese. == Aggiornamento == === Da interfaccia web === -- guida da scrivere -- === Da terminale === Per aggiornare Libre-Mesh su un device l'immagine contenente nel nome "sysupgrade" va copiata tramite scp o rsync usando ad esempio l'IPv6 Link Local del router da aggiornare. {{{ scp nome_immagine-sysupgrade.bin root@[fe80::de9f:dbff:fe31:c136%eth0]:/tmp }}} Dunque si entra sull'antenna con ssh: {{{ ssh root@fe80::de9f:dbff:fe31:c136%eth0 }}} si verifica che l'immagine si sia copiata correttamente confrontandola con il file md5sum presente nella cartella di compilazione: {{{ cd /tmp md5sum nome_immagine-sysupgrade.bin }}} dunque si aggiorna il firmware installato sovrascrivendolo con l'immagine nuova: {{{ sysupgrade nome_immagine-sysupgrade.bin }}} oppure con -n per cancellare i files di configurazione precedenti: {{{ sysupgrade -n nome_immagine-sysupgrade.bin }}} == Testing == 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 ]]: {{{ batctl o bmx6 -c show=originators }}} == Debugging == Essendo Libre-Mesh 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 [[ http://lists.libre-mesh.org/mailman/listinfo/dev | mailing list ]] degli sviluppatori e segnalate il problema preferibilmente in inglese. Chat room: su Freenode abbiamo una chat room #libre-mesh, ci si può accedere tramite un client IRC oppure via web da [[ https://webchat.freenode.net/ | qui ]]. Pagina delle segnalazioni: è necessario registrarsi sul sito di Libre-Mesh dunque segnalare il problema tramite [[ http://libre-mesh.org/projects/libre-mesh/issues/new | questo form ]]. |
|
Linea 399: | Linea 359: |
*[[ http://libremesh.org/docs/en_quick_starting_guide.html | Quick Starting Guide]] *[[ http://libremesh.org/docs/it_guida_rapida_per_iniziare.html | Guida rapida per iniziare]] |
|
Linea 400: | Linea 362: |
*[[ http://dev.libre-mesh.org/projects/libre-mesh/wiki/Compile_Manually | Guida ufficiale [EN] ]] | *[[ http://libremesh.org/getit.html | Come ottenere il firmware [EN] ]] |
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 LEDE (un progetto parallelo al più famoso OpenWrt) per gestire il routing dinamico e altre funzioni necessarie ad una rete wireless mesh. |
Indice
|
Questa pagina potrebbe esser non aggiornata, in caso di dubbi fate riferimento alla guida ufficiale in inglese o in italiano.
Devices supportati da LibreMesh
LibreMesh supporta tutti i router che siano 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 specifiche architetture. Per andare sul sicuro è possibile consultare 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 qui.
Prodursi una immagine di LibreMesh
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 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 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 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 |
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.
Il prossimo passo è installare, anche detto flashare, l'immagine adatta sul proprio router, come far questo viene accennato più avanti nella sezione "Flashing".
Flashing
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 istruzioni generiche descritte sul sito di LEDE per l'installazione di LEDE o le istruzioni specifiche indicate sulle pagine relative ai singoli router.
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":
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
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 è necessario lanciare:
lime-config
E riavviare l'apparato:
reboot && exit
Routing a terra
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. 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 sha1sum presente nella cartella di compilazione:
cd /tmp sha1sum nome_immagine-sysupgrade.bin
dunque si aggiorna il firmware installato sovrascrivendolo con l'immagine nuova:
sysupgrade -n nome_immagine-sysupgrade.bin
è 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:
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 BMX6:
batctl o bmx6 -c show=originators
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 degli sviluppatori o alla 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 qui.
Segnalazioni: si possono inviare alla mailing list degli sviluppatori oppure 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
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