View Full Version : cross-compilazione
fabio1883
08-03-2007, 12:16
Ho bisogno di installare delle librerie perl su un router il problema è che queste librerie vanno compilate e installate; su questo ruter non posso installare un compilatore per problemi di spazio, ho solo 4 Mb.
E' possibile cross-compilare delle librerie perl e poi copiarle sul router?
GRAZIE
ilsensine
08-03-2007, 12:17
Sì. Ti serve un toolchain.
L'ideale sarebbe un toolchain con la stessa versione del compilatore e delle librerie di sviluppo presenti sul router, in modo da evitare problemi di compatibilità.
fabio1883
08-03-2007, 15:36
Sì. Ti serve un toolchain.
L'ideale sarebbe un toolchain con la stessa versione del compilatore e delle librerie di sviluppo presenti sul router, in modo da evitare problemi di compatibilità.
Non ci sono librerie sul router, c'è solo una versione di microperl... e non c'è neanche un compilatore sul router altrimenti sarei a posto.
ilsensine
08-03-2007, 15:58
Che processore e sistema operativo monta?
Come fanno a non esserci librerie? Tutto compilato staticamente?
jappilas
08-03-2007, 16:05
dovrebbe esserci quantomeno la c library, a meno che non sia linkata staticamente agli eseguibili dei servizi che il router fa girare
in ogni caso per fare cross compilazione devi sapere le caratteristiche della piattaforma target (tipo, versione e in certi casi configurazione del kernel *, nonchè ISA implementata dal router)
* non sempre è linux, ho spesso trovato router e altre embedded appliances con vxworks o altri sistemi
EDIT mentre scrivevo il 2o post di ilsensine non c' era ancora :O
fabio1883
08-03-2007, 16:17
l'acces point wireless monta openwrt e collegandomi tramite ssh vedo che non ha il comando make e make install
ilsensine
08-03-2007, 16:24
l'acces point wireless monta openwrt
Ok quindi è un linux
e collegandomi tramite ssh vedo che non ha il comando make e make install
...e ci mancherebbe :D
Librerie però deve averne; cosa c'è nella directory /lib?
Inoltre, devi conoscere l'architettura. Se il sistema ha il proc filesystem, un cat /proc/cpuinfo dovrebbe darti i dettagli sul processore (in alternativa, prova un uname -a)
fabio1883
08-03-2007, 16:29
/lib/
ld-uClibc-0.9.28.so libm-0.9.28.so libuClibc++-0.2.1.so
ld-uClibc.so.0 libm.so.0 libuClibc++.so.0
libc.so.0 libnsl-0.9.28.so libuClibc-0.9.28.so
libcrypt-0.9.28.so libnsl.so.0 libutil-0.9.28.so
libcrypt.so.0 libresolv-0.9.28.so libutil.so.0
libdl-0.9.28.so libresolv.so.0 modules
libdl.so.0 librt-0.9.28.so
libgcc_s.so.1 librt.so.0
root@OpenWrt:/lib# cat /proc/cpuinfo
system type : Atheros AR531X_COBRA
processor : 0
cpu model : MIPS 4KEc V6.4
BogoMIPS : 183.50
wait instruction : yes
microsecond timers : yes
tlb_entries : 16
extra interrupt vector : yes
hardware watchpoint : no
VCED exceptions : not available
VCEI exceptions : not available
ilsensine
08-03-2007, 16:34
Un uclinux, ovviamente il tuo mips è senza mmu.
Il sito di riferimento per gli sviluppatori è questo:
http://www.uclinux.org/
Ti avverto che imparare a lavorare con questi aggeggi non è semplice. Inoltre, non tutti i programmi possono funzionare senza problemi in ambiente nommu.
ilsensine
08-03-2007, 16:41
Nota che se ti venisse fornito anche il toolkit completo da chi ha fatto il router, il tuo lavoro risulterebbe molto semplificato (almeno hai l'ambiente di sviluppo...)
Non sono affatto obbligati a darlo però.
fabio1883
08-03-2007, 16:53
E' un router che non si potrebbe modificare, aveva anche l'accesso ssh bloccato...
Forse hai anche capito a che access poin mi sto riferendo.... Il più "famoso" in questo periodo...
ilsensine
08-03-2007, 16:57
Affatto, non ho un router :stordita:
Allora devi procurarti o crearti un toolchain per conto tuo. Il resto è olio di gomito.
fabio1883
08-03-2007, 17:00
Affatto, non ho un router :stordita:
Allora devi procurarti o crearti un toolchain per conto tuo. Il resto è olio di gomito.
Bhè questo mi è arrivato gratis tramite una promozione che c'era su un giornale....
Grazie di tutto, vedo cosa riesco a fare...
vBulletin® v3.6.4, Copyright ©2000-2025, Jelsoft Enterprises Ltd.