CompilareDaOpenWrt

From NinuxBO
(Difference between revisions)
Jump to: navigation, search
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"
+
Bisogna:
* andare in "LiMe" e selezionare "lime-full" (lime-full deve avere la selezione [*] e non [M])
+
  +
* 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)
   
 
per velocizzare la compilazione e produrre i files per una specifico hardware
 
per velocizzare la compilazione e produrre i files per una specifico hardware
   
* "Target Profile" dove scelgiere per quale hardware compilare.
+
* "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

Revision as of 21:33, 21 July 2014

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):

aptitude install libncurses5-dev

Prima di tutto scaricare i sorgenti di openwrt

$git clone git://git.openwrt.org/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)

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

per velocizzare la compilazione si può usare

make -j n

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: 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'                             # Parametrizable 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
	list protocols adhoc
	list protocols lan
	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 bmx6:13                                                 # Define virtual interface name es: bm6.13
	list resolvers 208.67.222.222                                          # DNS servers node will use
	list resolvers 2001:4860:4860::8844


# 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 '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