Dopo aver descritto brevemente il firmware OpenWrt nel precedente articolo
si passa alla compilazione del firmware OpenWrt per il proprio dispositivo.
L’esempio sarà basato sul router TP-Link TL-MR3420 versione 1. Tale modello è presente fra la lista dei modelli supportati da OpenWrt; di seguito il link alla documentazione del modello in oggetto
Dalla documentazione si nota che il SOC è un Atheros AR7241. Questa informazione sarà utilizzata in fase di configurazione della compilazione del firmware. Come operazione preliminare scaricare anche il firmware originale del router presente al link precedente
Nella pagina TP-Link TL-MR3420 sono presenti inoltre i link al firmware opewrt in due varianti:
- Firmware per intallazione: openwrt-15.05.1-ar71xx-generic-tl-mr3420-v1-squashfs-factory.bin.
- Firmware per aggiornamento: openwrt-15.05.1-ar71xx-generic-tl-mr3420-v1-squashfs-sysupgrade.bin
Partendo dal firmware originale si usa il firmware per installazione, mentre per aggiornare da openwrt si usa il secondo tipo.
Dal link di OpenWrt sulla compilazione dell’immagine
si eseguono le seguenti operazioni su Debian preparato in precedenza
Aperta una shell su Debian come utente normale (non root) si installano i prerequisiti
1 2 3 4 5 6 7 8 |
sudo apt-get install git-core sudo apt-get install build-essential sudo apt-get install libssl-dev sudo apt-get install libncurses5-dev sudo apt-get install unzip sudo apt-get install gawk sudo apt-get install subversion sudo apt-get install mercurial |
Creare una cartella OpenWrt e clonare il repository. Nel nostro caso scegliamo il branch stabile 15.05
1 2 3 |
mkdir OpenWrt cd OpenWrt git clone https://git.openwrt.org/15.05/openwrt.git 15.05 |
Al termine del processo git eseguire
1 2 3 |
cd 15.05 ./scripts/feeds update -a ./scripts/feeds install -a |
Siamo pronti a questo punto ad eseguire la compilazione della immagine per il TP-Link TL-MR3420 V1.
Si lancia il comando
1 |
make menuconfig |
scegliendo come Target System AR7xxx/AR9xxx come indicato di seguitoCon i seguenti pulsanti si modificano le opzioni:
- y: si compila.
- m: si compila come modulo.
- n: non viene considerato.
Fare riferimento al link
per tutte le opzioni.
Premendo Invio alla schermata successiva si sceglie la piattaforma correttaSi devono installare anche i pacchetti minimi per l’amministrazione del sistema, ossia LuCI baseAlla schermata successiva si sceglie Collectione quindi l’opzione luci che installa automaticamente i prerequisiti tra i quali anche un server httpSi installano anche i moduli crittografici del kernel accedendo ai moduli del kernelSi sceglie poi l’opzione delle api crittograficheed infine si scelgono i seguenti moduli compilati con l’immagineConviene salvare la configurazione in un file in modo da riutilizzarla in seguito. Salvare infine la configurazione nel file .config.
Uscire dal menuconfig ed eseguire il comando
1 |
make defconfig |
in modo da controllare tutti i prerequisiti necessari alla compilazione.
Per avviare la compilazione eseguire il comando
1 |
make V=s |
Il comando precedente esegue la compilazione in verbose mode.
Al termine della compilazione si hanno i file dei firmware nella cartella bin piattaforma scelta. Nel nostro caso le immagini sono evidenziate nella figura seguenteSi può procedere alla installazione del firmware.
ATTENZIONE: Prima di procedere alla installazione del firmware verificate la procedura di recupero del vostro router in caso di qualche problema, quale avvio in recovery mode, flash via tftp, jtag, ecc. L’installazione dell’immagine generata sul dispositivo è a vostro rischio e pericolo. Non ci assumiamo alcuna responsabilità nel caso tale installazione generi malfunzionamento o blocco del disposivo.
Si faccia riferimento al sito di OperWrt per tutte le opzioni ed impostazioni utilizzabili per la compilazione e lo sviluppo dei moduli. Nel prossimo articolo
si descrive come compilare ed installare da linea comando il server ftp vsftpd.