CompilareDaOpenWrt

From NinuxBO
(Difference between revisions)
Jump to: navigation, search
 
(18 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 39: Line 39:
   
 
<code>make clean && git pull && rm -rf feeds/lime && rm -rf feeds/libremap && scripts/feeds update -a && scripts/feeds install -a </code>
 
<code>make clean && git pull && rm -rf feeds/lime && rm -rf feeds/libremap && scripts/feeds update -a && scripts/feeds install -a </code>
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, 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)
 
   
Se il processo di compilazione giungera' a buon fine troverete tutti il materiale prodotto nella cartell ./bin:
+
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
  +
  +
<code>make </code>
  +
  +
NON USARE <code>make -j n </code> 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
 
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
+
  +
-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
 
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
+
  +
-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
 
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:
  +
  +
<pre>
  +
  +
# 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'
  +
  +
</pre>
  +
  +
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 <code>/etc/config/lime </code> ed eseguire
  +
  +
<code> lime-config </code>
  +
  +
e poi
  +
  +
<code> uci commit </code>
  +
  +
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.

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