[Ninux-Calabria] Compilazione incrementale OpenWRT - Work In Progress

Stefano De Carlo stefanauss a gmail.com
Mer 23 Gen 2013 14:36:56 UTC


Ciao ninuxalabri,

mentre preparavo il tp-link 741nd per fare nat della wiunical durante i 
corsi, ho anche settato un ambiente di compilazione openwrt sul mio pc.
Uno dei problemi che abbiamo incontrato finora è il pochissimo spazio a 
disposizione per pacchetti aggiuntivi flashando la build fornita da 
OpenWRT: rimangono 800KiB, troppo pochi per cose che ovviamente ci 
servono come olsrd e tinc.
Sugli ipkg non c'è il campo "Installed Size" come sui debian ad esempio, 
e non c'è un modo chiaro di predire/sapere quanto il pacchetto peserà 
sulla flash del router. Semplicemente analizzare lo spazio della 
cartella col pacchetto compilato non va bene perché potrebbe essere 
presente della sporcizia di compilazione che poi non servirà/andrà sul 
router.

Ho quindi cominciato un progetto di compilazione incrementale per il 
741ND e in generale per tutti i router con 4MiB di memoria flash: a 
partire dal default, che corrisponde al target specifico del modello, 
aggiungo un *solo* pacchetto alla volta da compilare *incluso* nel 
firmware e annoto di quanto cresce la dimensione.
Trovate i risultati che ho trovato finora su questo GDocs: 
https://docs.google.com/spreadsheet/ccc?key=0AtRNHh47KzvidDh0a2dNRXlYU0k1cjF6ZnVNLVRtYkE#gid=0

Alcune cose che ho scoperto:
- nonostante le build ufficiali includano LuCI (l'interfaccia web di 
OpenWRT), se si compila il fw a mano in nessun caso esso è presente di 
default. Strano che il default "non sia poi così default", ma 
probabilmente suppongono che se stai ricompilando a mano, al 99% è 
perché non vuoi LuCI...
- I fw crescono solo in blocchi di 64KiB, cosa che sicuramente ha a che 
fare con l'architettura della NAND interna. Questo comporta che a volte, 
aggiungendo pacchetti, il fw rimane della stessa dimensione. In 
sostanza, quando questo succede, possiamo essere sicuri che il pacchetto 
è inferiore ai 64KiB, anche molto di meno nel caso di 2,3,4 compilazioni 
successive che NON aumentano la dimensione.

Per riferimento, vi riporto le dimensioni della build ufficiale di 
OpenWRT 12.09-rc1: 2816KiB

Ora, mi serve il vostro aiuto, in particolare Gigi e Spax. È chiaro che 
non si può lanciare una compilazione per ogni singolo pacchetto, troppo 
lavoro. Vorrei che mi aiutaste a identificare quali pacchetti, 
sottosistemi, funzionalità possono essere (anche in prospettiva 
*futura*) utili nell'ambito Ninux o anche a livello personale/HackLab. 
Se mi dite quali, li includo nella compilazione incrementale ed espando 
il documento di cui sopra.
Inoltre se mi poteste fornire le .config che vi siete salvati e dirmi a 
quali-firmware-flashati-dove corrispondo, sarebbe altrettanto utile.
Non è necessario che mi diciate il nome effettivo del pacchetto se non 
lo sapete, ma la funzionalità in generale almeno (chessò: tunnell L2TP, 
modulo kernel che fa il kebab, ecc.)

Aspetto risposte,
Stefanauss.


Maggiori informazioni sulla lista Calabria