CompilareDaOpenWrt

From NinuxBO
(Difference between revisions)
Jump to: navigation, search
 
(10 intermediate revisions by 7 users not shown)
Line 3: Line 3:
 
Su una macchina debian installare i seguenti pacchetti(aggiungere pacchetti necessari volta per volta):
 
Su una macchina debian installare i seguenti pacchetti(aggiungere pacchetti necessari volta per volta):
   
<code>aptitude install libncurses5-dev</code>
+
<code>apt-get install git build-essential libncurses5-dev zlib1g-dev gawk subversion</code>
   
 
Prima di tutto scaricare i sorgenti di openwrt
 
Prima di tutto scaricare i sorgenti di openwrt
   
<code>$git clone git://git.openwrt.org/openwrt.git</code>
+
<code>$git clone git://git.openwrt.org/15.05/openwrt.git</code>
   
 
entrare nella cartella appena scaricata da git
 
entrare nella cartella appena scaricata da git
Line 41: Line 41:
   
 
make clean inizialmente chiedera' di procedere al menuconfig...potete fare exit e rimandare questa parte.
 
make clean inizialmente chiedera' di procedere al menuconfig...potete fare exit e rimandare questa parte.
A questo punto e' possibile lanciare la configurazione con
+
A questo punto e' possibile lanciare la configurazione con:
   
 
<code>make menuconfig </code>
 
<code>make menuconfig </code>
   
bisogna prima di tutto disabilitare "dnsmasq" in "Base System" quindi andare in "LiMe" e selezionare "lime-full" (lime-full deve avere la selezione [*] e non [M])
+
Bisogna:
  +
  +
* prima di tutto disabilitare "dnsmasq" in "Base System"
  +
* andare in "LiMe" e selezionare "lime-full" (lime-full deve avere la selezione [*] e non [M], vedi nota sotto)
  +
* in "LiMe" deselezionare il pacchetto "lime-proto-wan"
  +
  +
Ho caricato un file di configurazione su https://owncloud.sheratan.it/owncloud/public.php?service=files&t=88c42cd83dcd86e50ef2042b2924b3aa probabilmente make oldconfig dovrebbe essere in grado di recuperare i settings anche di fronte ad evoluzioni.
  +
  +
per velocizzare la compilazione e produrre i files per una specifico hardware
  +
  +
* "Target Profile" dove scegliere per quale hardware compilare. (Questo riduce di molto i tempi di compilazione)
   
 
Ora bisogna fare delle valutazioni in base alla flash disponibile sul dispositivo che andra' ad ospitare il nostro firmware:
 
Ora bisogna fare delle valutazioni in base alla flash disponibile sul dispositivo che andra' ad ospitare il nostro firmware:
nel caso di una flash piccola(4mb) potrebbe essere necessario rimuovere dei pacchetti(lime-debug e lime-webui sono sacrificabili) , nel ramo di sviluppo sono implementate tecniche per ridurre ulteriormente la richiesta di spazio del firmware compilato. Selezionare anche il target system corretto: la famiglia del processore della propria CPE e' individuabile sul sito di openwrt: per i tpl841 e' atheros AR7x/AR9x.
+
nel caso di una flash piccola(4mb) potrebbe essere necessario rimuovere dei pacchetti(lime-debug e lime-webui sono sacrificabili, per questo caso deselezionare lime-full e selezionare le singole voci da abilitare) , nel ramo di sviluppo sono implementate tecniche per ridurre ulteriormente la richiesta di spazio del firmware compilato.
ATTENZIONE: se si cambia l'architettura (target) si perderanno le altre scelte (dovrete riselezionare lime-full).
+
  +
Selezionare anche il target system corretto: la famiglia del processore della propria CPE e' individuabile sul sito di openwrt: per i tpl841 e' atheros AR7x/AR9x.
  +
  +
'''ATTENZIONE:''' se si cambia l'architettura (target) si perderanno le altre scelte (dovrete riselezionare lime-full o comunque le singole voci).
   
 
Una volta terminata la configurazione si può compilare il firmware con il comando
 
Una volta terminata la configurazione si può compilare il firmware con il comando
Line 55: Line 55:
 
<code>make </code>
 
<code>make </code>
   
per velocizzare la compilazione si può usare
+
NON USARE <code>make -j n </code> PERCHE' ROMPE LA COMPILAZIONE
 
<code>make -j ''n''</code>
 
 
dove ''n'' è uguale al numero dei core più uno.
 
   
 
Se il processo di compilazione giungera' a buon fine troverete tutti il materiale prodotto nella cartella ./bin:
 
Se il processo di compilazione giungera' a buon fine troverete tutti il materiale prodotto nella cartella ./bin:
Line 73: Line 73:
   
 
<pre>
 
<pre>
  +
 
# Beware this file is not supposed to store specific configuration, like "config net eth0"
 
# Beware this file is not supposed to store specific configuration, like "config net eth0"
 
# System option
 
# System option
   
 
config lime system
 
config lime system
option hostname 'NinuxBoNode-\M4\\M5\\M6\' # Parametrizable hostname \Mn\ will be substituted with the n'th byte of the primary_dev MAC
+
option hostname 'NinuxBoNode-%M4%M5%M6' # Parametrizable hostname \Mn\ will be substituted with the n'th byte of the primary_dev MAC
   
   
Line 83: Line 84:
   
 
config lime network
 
config lime network
option primary_interface eth0 # The mac address of this device will be used in different places
+
option primary_interface eth0 # The mac address of this device will be used in different places
option main_ipv4_address '10.51.\M5\.\M6\/16' # Parametrizable main IPv4 address \Mn\ will be substituted with the n'th byte of the primary_dev MAC
+
option main_ipv4_address '10.51.%M5.%M6/16' # Parametrizablezable main IPv4 address \Mn\ will be substituted with the n'th byte of the primary_dev MAC
option main_ipv6_address '2001:db8::\M5\\M6\/64' # Parametrizable main IPv6 address \Mn\ will be substituted with the n'th byte of the primary_dev MAC
+
option main_ipv6_address '2001:db8::%M5%M6/64' # Parametrizablezableable main IPv6 address \Mn\ will be substituted with the n'th byte of the primary_dev MAC
list protocols adhoc
+
list protocols adhoc
list protocols lan
+
list protocols lan
list protocols anygw # Refer to http://libre-mesh.org/projects/libre-mesh/wiki/Anygw
+
list protocols anygw # Refer to http://libre-mesh.org/projects/libre-mesh/wiki/Anygw
list protocols batadv:11 # Define virtual interface name es: bat0.11
+
list protocols batadv:%N1 # Define virtual interface name es: bat0.11
list protocols bmx6:13 # Define virtual interface name es: bm6.13
+
list protocols bmx6:13 # Define virtual interface name es: bm6.13
list resolvers 208.67.222.222 # DNS servers node will use
+
list resolvers 208.67.222.222 # DNS servers node will use
list resolvers 2001:4860:4860::8844
+
list resolvers 2620:0:ccc::2 #open DNS
   
   
 
# WiFi general options
 
# WiFi general options
   
config lime wifi
+
config lime wifi
option channel_2ghz '11'
+
option channel_2ghz '11'
option channel_5ghz '48'
+
option channel_5ghz '48'
list modes 'ap'
+
list modes 'ap'
list modes 'adhoc'
+
list modes 'adhoc'
option ap_ssid 'NinuxBO'
+
option ap_ssid 'NinuxBO'
option adhoc_ssid 'NinuxBO-mesh'
+
option adhoc_ssid 'NinuxBO-mesh'
option adhoc_bssid 'ca:fe:00:c0:ff:ee'
+
option adhoc_bssid 'de:d1:c0:c0:d1:ce' #vecchio mac:'ca:fe:00:c0:ff:ee'
option adhoc_mcast_rate_2ghz '24000'
+
option adhoc_mcast_rate_2ghz '24000'
option adhoc_mcast_rate_5ghz '6000'
+
option adhoc_mcast_rate_5ghz '6000'
   
 
</pre>
 
</pre>

Latest revision as of 17:54, 4 February 2016

Questa piccola guida server a compilare libremesh partendo dai sorgenti di openwrt.

Su una macchina debian installare i seguenti pacchetti(aggiungere pacchetti necessari volta per volta):

apt-get install git build-essential libncurses5-dev zlib1g-dev gawk subversion

Prima di tutto scaricare i sorgenti di openwrt

$git clone git://git.openwrt.org/15.05/openwrt.git

entrare nella cartella appena scaricata da git

$cd openwrt/

copiare il file feed di default in modo che sia utilizzabile

$cp feeds.conf.default feeds.conf

quindi editare il fil feeds.conf appena creato

$vi feeds.conf

e aggiungere le seguenti linee

src-git lime https://github.com/libre-mesh/lime-packages.git

src-git libremap git://github.com/libremap/libremap-agent-openwrt.git


nel caso si voglia lavorare col ramo di sviluppo sostituire questa

src-git lime https://github.com/libre-mesh/lime-packages.git

con questa

src-git lime https://github.com/libre-mesh/lime-packages.git;develop

eseguire il seguente blocco di comandi

make clean && git pull && rm -rf feeds/lime && rm -rf feeds/libremap && scripts/feeds update -a && scripts/feeds install -a

make clean inizialmente chiedera' di procedere al menuconfig...potete fare exit e rimandare questa parte. A questo punto e' possibile lanciare la configurazione con:

make menuconfig

Bisogna:

  • prima di tutto disabilitare "dnsmasq" in "Base System"
  • andare in "LiMe" e selezionare "lime-full" (lime-full deve avere la selezione [*] e non [M], vedi nota sotto)
  • in "LiMe" deselezionare il pacchetto "lime-proto-wan"

Ho caricato un file di configurazione su https://owncloud.sheratan.it/owncloud/public.php?service=files&t=88c42cd83dcd86e50ef2042b2924b3aa probabilmente make oldconfig dovrebbe essere in grado di recuperare i settings anche di fronte ad evoluzioni.

per velocizzare la compilazione e produrre i files per una specifico hardware

  • "Target Profile" dove scegliere per quale hardware compilare. (Questo riduce di molto i tempi di compilazione)

Ora bisogna fare delle valutazioni in base alla flash disponibile sul dispositivo che andra' ad ospitare il nostro firmware: nel caso di una flash piccola(4mb) potrebbe essere necessario rimuovere dei pacchetti(lime-debug e lime-webui sono sacrificabili, per questo caso deselezionare lime-full e selezionare le singole voci da abilitare) , nel ramo di sviluppo sono implementate tecniche per ridurre ulteriormente la richiesta di spazio del firmware compilato.

Selezionare anche il target system corretto: la famiglia del processore della propria CPE e' individuabile sul sito di openwrt: per i tpl841 e' atheros AR7x/AR9x.

ATTENZIONE: se si cambia l'architettura (target) si perderanno le altre scelte (dovrete riselezionare lime-full o comunque le singole voci).

Una volta terminata la configurazione si può compilare il firmware con il comando

make

NON USARE make -j n PERCHE' ROMPE LA COMPILAZIONE

Se il processo di compilazione giungera' a buon fine troverete tutti il materiale prodotto nella cartella ./bin: ovviamente vengono prodotti i firmware per tutte le macchine supportate per il target selezionato, per il mio tplink tl-wr841nd V8 dovro' scegliere tra

-rw-r--r-- 1 thegamer thegamer 3.8M May 30 12:53 bin/ar71xx/openwrt-ar71xx-generic-tl-wr841n-v8-squashfs-factory.bin

dedicata al caso in cui si faccia l'upgrade da firmware originale

-rw-r--r-- 1 thegamer thegamer 2.9M May 30 12:53 bin/ar71xx/openwrt-ar71xx-generic-tl-wr841n-v8-squashfs-sysupgrade.bin

dedicata agli update da openwrt


NOTA bene: per creare un firmware compatibile con il resto dei dispositivi di Bologna Ninux, e' necessario passare a Li-Me la configurazione corretta, sostituendo prima della compilazione del firmware il file feeds/lime/packages/lime-system/files/etc/config/lime con il seguente:


# Beware this file is not supposed to store specific configuration, like "config net eth0"
# System option

config lime system
option  hostname 'NinuxBoNode-%M4%M5%M6'                                # Parametrizable hostname \Mn\ will be substituted with the n'th byte of the primary_dev MAC


# Network general option

config lime network
option primary_interface eth0                                                 # The mac address of this device will be used in different places
option main_ipv4_address '10.51.%M5.%M6/16'                             # Parametrizablezable main IPv4 address \Mn\ will be substituted with the n'th byte of the primary_dev MAC
option main_ipv6_address '2001:db8::%M5%M6/64'                       # Parametrizablezableable main IPv6 address \Mn\ will be substituted with the n'th byte of the primary_dev MAC
list protocols adhoc
list protocols lan
list protocols anygw                                                                          # Refer to http://libre-mesh.org/projects/libre-mesh/wiki/Anygw
list protocols batadv:%N1                                               # Define virtual interface name es: bat0.11
list protocols bmx6:13                                                  # Define virtual interface name es: bm6.13
list resolvers 208.67.222.222                                          #        DNS servers node will use
list resolvers 2620:0:ccc::2                                           #open DNS


# WiFi general options

config lime wifi  
option channel_2ghz '11'
option          channel_5ghz '48'
list modes 'ap'
list modes 'adhoc'
option ap_ssid                  'NinuxBO'
option adhoc_ssid 'NinuxBO-mesh'
option adhoc_bssid 'de:d1:c0:c0:d1:ce'                                 #vecchio mac:'ca:fe:00:c0:ff:ee'
option adhoc_mcast_rate_2ghz '24000'
option adhoc_mcast_rate_5ghz '6000'

Si può applicare questa configurazione anche dopo aver compilato e installato il firmware sul dispositivo con i seguenti passi:

Copiare il file precedente sul dispositivo appena flashato come /etc/config/lime ed eseguire

lime-config

e poi

uci commit

Si noti che la rete ipv4 segnata nel file di configurazione è parte della /15 assegnata a NinuxBO mentre la rete ipv6 ha ancora un indirizzamento generico.

Personal tools
Namespaces

Variants
Actions
Navigation
Tools