CompilareDaOpenWrt
(Created page with "<code>#Questa piccola guida server a compilare libremesh partendo dai sorgenti di openwrt</code> <code>#prima di tutto scaricare i sorgenti di openwrt</code> <code>$git clon...") |
|||
(27 intermediate revisions by 7 users not shown) | |||
Line 1: | Line 1: | ||
− | <code>#Questa piccola guida server a compilare libremesh partendo dai sorgenti di openwrt</code> |
+ | Questa piccola guida server a compilare libremesh partendo dai sorgenti di openwrt. |
− | <code>#prima di tutto scaricare i sorgenti di openwrt</code> |
+ | Su una macchina debian installare i seguenti pacchetti(aggiungere pacchetti necessari volta per volta): |
− | <code>$git clone git://git.openwrt.org/openwrt.git</code> |
+ | <code>apt-get install git build-essential libncurses5-dev zlib1g-dev gawk subversion</code> |
− | <code>#entrare nella cartella appena scaricata da git</code> |
+ | Prima di tutto scaricare i sorgenti di openwrt |
+ | |||
+ | <code>$git clone git://git.openwrt.org/15.05/openwrt.git</code> |
||
+ | |||
+ | entrare nella cartella appena scaricata da git |
||
<code>$cd openwrt/</code> |
<code>$cd openwrt/</code> |
||
− | <code>#copiare il file feed di default in modo che sia utilizzabile</code> |
+ | copiare il file feed di default in modo che sia utilizzabile |
<code>$cp feeds.conf.default feeds.conf</code> |
<code>$cp feeds.conf.default feeds.conf</code> |
||
− | <code>#quindi editare il fil feeds.conf appena creato</code> |
+ | quindi editare il fil feeds.conf appena creato |
<code>$vi feeds.conf</code> |
<code>$vi feeds.conf</code> |
||
− | <code>#e aggiungere le seguenti linee</code> |
+ | e aggiungere le seguenti linee |
<code>src-git lime https://github.com/libre-mesh/lime-packages.git</code> |
<code>src-git lime https://github.com/libre-mesh/lime-packages.git</code> |
||
Line 24: | Line 24: | ||
− | <code>#nel caso si voglia lavorare col ramo di sviluppo sostituire questa</code> |
+ | nel caso si voglia lavorare col ramo di sviluppo sostituire questa |
<code>src-git lime https://github.com/libre-mesh/lime-packages.git</code> |
<code>src-git lime https://github.com/libre-mesh/lime-packages.git</code> |
||
− | <code>#con questa</code> |
+ | con questa |
<code>src-git lime https://github.com/libre-mesh/lime-packages.git;develop</code> |
<code>src-git lime https://github.com/libre-mesh/lime-packages.git;develop</code> |
||
+ | |||
+ | eseguire il seguente blocco di comandi |
||
+ | |||
+ | <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. |
||
+ | A questo punto e' possibile lanciare la configurazione con: |
||
+ | |||
+ | <code>make menuconfig </code> |
||
+ | |||
+ | 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 |
||
+ | |||
+ | <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 |
||
+ | |||
+ | -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: |
||
+ | |||
+ | <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.