CompilareDaOpenWrt
(20 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" |
+ | 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.