Il grande problema dei modem che montano OpenWRT è lo spazio; paciugando ci si rende subito conto che i 4/8MB a disposizione sono veramente pochi per installare nuovi pacchetti,
Possiamo ovviare a questo problema aggiungendo ciò che ci interessa direttamente nell’immagine del sistema…
La domanda sorge spontanea: ma se un pacchetto lo installo o lo integro, non occupa lo stesso spazio?
La risposta è NO!
La figata di OpenWRT è che il ‘sistema’ è salvato in un filesystem readonly compresso mentre i pacchetti installati in un secondo momento (via opkg) vengono immagazzinati in un filesystem overlay… e pesano un botto di più.
La soluzione è quindi creare un’immagine custom dove inserire le cose che ci interessano, il modo più rapido è utilizzare l‘Image Builder che permette di aggiungere pacchetti senza ricompilare tutta la baracca.
Installazione
Per prima cosa bisogna scaricare l’Image Builder per il nostro target; io sto utilizzando un TPLink MR3020, architettura AR71XX:
cd ~ mkdir openwrt && cd openwrt wget http://downloads.openwrt.org/barrier_breaker/14.07/ar71xx/generic/OpenWrt-ImageBuilder-ar71xx_generic-for-linux-x86_64.tar.bz2 tar -xvjf OpenWrt-ImageBuilder-ar71xx_generic-for-linux-x86_64.tar.bz2 cd OpenWrt-ImageBuilder-ar71xx_generic-for-linux-x86_64
Una volta scompattato bisogna spiegargli da dove acchiappare i pacchetti, aggiungiamo al file repositories.conf le seguenti righe:
src/gz barrier_breaker_base http://downloads.openwrt.org/barrier_breaker/14.07/ar71xx/generic/packages/base src/gz barrier_breaker_luci http://downloads.openwrt.org/barrier_breaker/14.07/ar71xx/generic/packages/luci src/gz barrier_breaker_management http://downloads.openwrt.org/barrier_breaker/14.07/ar71xx/generic/packages/management src/gz barrier_breaker_oldpackages http://downloads.openwrt.org/barrier_breaker/14.07/ar71xx/generic/packages/oldpackages src/gz barrier_breaker_packages http://downloads.openwrt.org/barrier_breaker/14.07/ar71xx/generic/packages/packages src/gz barrier_breaker_routing http://downloads.openwrt.org/barrier_breaker/14.07/ar71xx/generic/packages/routing src/gz barrier_breaker_telephony http://downloads.openwrt.org/barrier_breaker/14.07/ar71xx/generic/packages/telephony ## This is the local package repository, do not remove! src imagebuilder file:packages
E’ ora di compilare!
Con un semplice comando è possibile compilare inserendo nuovi pacchetti e aggiungendo file all’immagine;
Possiamo caricare alcune configurazioni default inserendole in /files/etc/config/ o eliminare i pacchetti che non ci interessano,
Una volta deciso cosa si vuol fare da grandi possiamo creare la nostra immagine modificando il seguente comando:
make image PROFILE=TLMR3020 PACKAGES="dnsmasq -ip6tables -ppp -ppp-mod-pppoe -kmod-ipt-nathelper -odhcp6c uhttpd" FILES=./files/
Dove chiaramente i pacchetti preceduti dal ‘-‘ sono quelli che saranno rimossi