Se ce la fai per il prossimo battlemesh e' una bella cosa :D
On Sunday 29 January 2012 16:13:08 Luca Dionisi wrote: > Sono andato un po' avanti con questa cosa della cross-compilazione. > > Ho scaricato la OpenWRT taggata backfire_10.03.1 dal loro repository. > Ho seguito le istruzioni del sito per compilare la Buildroot, dapprima > con una configurazione default (make defconfig) impostando solo le > caratteristiche di architettura del mio router Omnima (System: > Infineon/ADMtek ADM5120, little endian, profile: Edimax BR-6104KP). > Poi con un make menuconfig in cui ho indicato: > * Build the OpenWrt SDK > * Build the OpenWrt based Toolchain > * Advanced configuration options -> Build gdb > * e alcuni pacchetti che mi sono essenziali > > Dapprima non avevo notato che ci fosse fra i pacchetti ufficiali anche > glib2 (forse non avevo fatto feeds update) e quindi mi sono messo a > farne la cross-compilazione a mano e alla fine c'ero riuscito, con la > GLib 2.30.1 > Poi ho visto che c'era la versione ufficiale; poco male, tutta > esperienza. Inoltre guardando il Makefile di questa versione (che > nella backfire_10.03.1 è la GLib 2.26.1) ho riconosciuto le opzioni > per configure che avevo trovato a mano a forza di prove, quindi ho > anche scoperto un po' (molto superficialmente) di come si articola il > sistema di build di openwrt. > Nel mio ambiente di sviluppo (ubuntu) io uso la GLib 2.28.6 ma credo > che la 2.26 vada bene per i miei scopi. > Invece va notato che la backfire_10.03 contiene il pacchetto glib2 con > la versione GLib 2.22.2 e questa risulta troppo vecchia (causa > problemi con la libreria libgee di cui parlo dopo) > > Le prime prove di compilazione di un programma Vala le ho fatte a > questo punto, usando il cross-compiler in staging_dir/toolchain-* e > indicando le directory su cui cercare gli include e quelle su cui > cercare le libs all'interno di staging_dir/target-*. > La compilazione di un programma semplice va a buon fine. > > Sul mio router Omnima avevo già installato a suo tempo una backfire_10.03. > Le prime prove di esecuzione quindi le ho fatte con i pacchetti della > backfire_10.03, scaricandoli con opkg install. > L'esecuzione funzionava correttamente. > Ma va notato (cosa che all'inizio non avevo compreso) che il programma > era stato compilato con la glib 2.26 e ora girava con la 2.22. > > Fra i pacchetti ufficiali di openwrt ci sono anche altre due delle > dipendenze che mi sono essenziali: > * pthsem (che è una versione "estesa" del libpth) > * libgcrypt > Questi pacchetti ho visto che ci sono ma non li ho provati ancora... > ma cerchiamo di essere ottimisti! > > L'ultima libreria che mi serviva è la libgee (https://live.gnome.org/Libgee) > Si tratta di un software semplice, e infatti la cross-compilazione non ha > dato problemi. > Ho provato allora a compilare un programma Vala che facesse uso della > libgee. La cross-compilazione non ha dato problemi. > Ho portato poi sia la libreria libgee, sia il programma utilizzatore, > dentro il router. > In esecuzione il programma richiamava correttamente la libgee, ma > questa mi dava l'errore: undefined symbol g_malloc0_n. > A furia di verificare ho visto che questo simbolo non si trovava nella > GLib 2.22, mentre nelle versioni più recenti c'era. > > Ho quindi deciso che il passo successivo sarebbe stato installare la > versione 10.03.1 sul mio router. (e di questa piccola odissea trovate > traccia nelle mie mail precedenti in lista) > > Ora anche il programma in Vala che fa uso della libgee funziona > correttamente nel router. > Proseguirò con i test delle altre dipendenze e poi proverò a far > girare il programma netsukuku allo stato attuale. Vi tengo informati. > > --Luca > _______________________________________________ > Wireless mailing list > [email protected] > http://ml.ninux.org/mailman/listinfo/wireless _______________________________________________ Wireless mailing list [email protected] http://ml.ninux.org/mailman/listinfo/wireless
