cross compilazione per cpu ARM
Moderatori: ragno, tapino, alez, zulu, davidea
cross compilazione per cpu ARM
ciao ragazzi dopo un po di tempo eccomi qui a riscrivere, questa volta non per VDR ma per un hardware differente so che siete linux user expert ed allora approfitto
ho acquistato un linksys NSLU2 con processore arm che ho patchato con una distro dedicata chiamata slugOS big endian trovando il necessario qui http://www.nslu2-linux.org/wiki/Main/HomePage
ora ho bisogno di compilare per questa piattaforma ed ho trovato istruzioni per cross compilare da ubuntu
cmake
Unknown cross system name:
--
-- operating system: Unknown
-- system type: ARM-unknown-unknown
-- system: unknown
-- cpu: ARM
-- hw: unknown
-- use built-in aes functions
--
-- Configuring done
-- Generating done
-- Build files have been written to: /home/slug/nslu2/svn/build
ed ho configurato il toolchain puntando ai gcc arm
set (MY_SYSTEM_NAME NSLU2)
set (CMAKE_SYSTEM_NAME Linux)
set (CMAKE_C_COMPILER /home/slug/nslu2/optware/nslu2/toolchain/armv5b-softfloat-linux/gcc-3.3.5-g
libc-2.2.5/bin/armv5b-softfloat-linux-gcc)
set (CMAKE_SYSTEM_PROCESSOR ARM)
alla fine mi compila anche se ho quegli unknown e l'eseguibile si avvia, ma non riesco a capire come mai non recupera le info completamente
see you soon
ho acquistato un linksys NSLU2 con processore arm che ho patchato con una distro dedicata chiamata slugOS big endian trovando il necessario qui http://www.nslu2-linux.org/wiki/Main/HomePage
ora ho bisogno di compilare per questa piattaforma ed ho trovato istruzioni per cross compilare da ubuntu
cmake
Unknown cross system name:
--
-- operating system: Unknown
-- system type: ARM-unknown-unknown
-- system: unknown
-- cpu: ARM
-- hw: unknown
-- use built-in aes functions
--
-- Configuring done
-- Generating done
-- Build files have been written to: /home/slug/nslu2/svn/build
ed ho configurato il toolchain puntando ai gcc arm
set (MY_SYSTEM_NAME NSLU2)
set (CMAKE_SYSTEM_NAME Linux)
set (CMAKE_C_COMPILER /home/slug/nslu2/optware/nslu2/toolchain/armv5b-softfloat-linux/gcc-3.3.5-g
libc-2.2.5/bin/armv5b-softfloat-linux-gcc)
set (CMAKE_SYSTEM_PROCESSOR ARM)
alla fine mi compila anche se ho quegli unknown e l'eseguibile si avvia, ma non riesco a capire come mai non recupera le info completamente
see you soon
Re: cross compilazione per cpu ARM
Innanzitutto cosa devi compilare?
Alcune applicazioni sono abbastanza semplici e si compilano senza problemi, basta cambiare la versione di gcc e delle librerie necessarie, semplicemente modificando le variabili d'ambiente...
Altre sono piu' complesse e ricorrono a strumenti come autoconf/autogen...Solitamente in queste si differenzia il compilatore che genera codice per la macchina host (HOSTCC) da quello che genera codice per la macchina target (CC), perche magari nella fase di build sono necessarie l'esecuzioni di script o altro che devono "girare" sulla macchina host...
Comunque dalle info che riporti, non hai configurato bene il path delle applicazioni toolchain ne specificato correttamente il target della build...
Controlla bene, perche' comunque il crosscompiling per NSLU2 e' ben documentato ed utilizzato da molti smanettoni di questo apparecchio...
ciao
p.s. aes function mi puzza di CS
Alcune applicazioni sono abbastanza semplici e si compilano senza problemi, basta cambiare la versione di gcc e delle librerie necessarie, semplicemente modificando le variabili d'ambiente...
Altre sono piu' complesse e ricorrono a strumenti come autoconf/autogen...Solitamente in queste si differenzia il compilatore che genera codice per la macchina host (HOSTCC) da quello che genera codice per la macchina target (CC), perche magari nella fase di build sono necessarie l'esecuzioni di script o altro che devono "girare" sulla macchina host...
Comunque dalle info che riporti, non hai configurato bene il path delle applicazioni toolchain ne specificato correttamente il target della build...
Controlla bene, perche' comunque il crosscompiling per NSLU2 e' ben documentato ed utilizzato da molti smanettoni di questo apparecchio...
ciao
p.s. aes function mi puzza di CS
vdr: 1.4.7+extpatch54 (pensionata), 1.7.27 (yavdr 0.4)
Percorri la via che porta al sole,
e non camminare sui sentieri oscuri.
E quando penso che sia finita,
è proprio allora che comincia la salita.
Percorri la via che porta al sole,
e non camminare sui sentieri oscuri.
E quando penso che sia finita,
è proprio allora che comincia la salita.
Re: cross compilazione per cpu ARM
non so se si puo' dire ...
la dico... devo compilare oscam http://streamboard.gmc.to:8001/oscam/wiki
ho seguito questa guida per cross compilare http://www.myslug.de/index.php?title=Der_Crosscompiler
seguendo la guida pero sul make -f Makefile mi fermo qui con qst errore
devo fare downgrade della libtool ?
apt-get remove libtool --purge
e poi installo a mano la 1.5 ?
se detto qualcosa che possa toccare le regole e ledere qualcuno del forum cancellate pure ed accettate le mie scuse
see you soon
la dico... devo compilare oscam http://streamboard.gmc.to:8001/oscam/wiki
ho seguito questa guida per cross compilare http://www.myslug.de/index.php?title=Der_Crosscompiler
seguendo la guida pero sul make -f Makefile mi fermo qui con qst errore
Codice: Seleziona tutto
taging/opt/lib -L/home/slug/nslu2/optware/nslu2/staging/opt/lib/mysql -Wl,-rpath=/opt/lib/mysql -ldl -lpthread -DZTS -c /home/slug/nslu2/optware/nslu2/builds/php/ext/date/php_date.c -o ext/date/php_date.lo
/home/slug/nslu2/optware/nslu2/builds/php/libtool: line 460: CDPATH: command not found
/home/slug/nslu2/optware/nslu2/builds/php/libtool: line 1138: func_opt_split: command not found
libtool: Version mismatch error. This is libtool 2.2.4 Debian-2.2.4-0ubuntu4, but the
libtool: definition of this LT_INIT comes from an older release.
libtool: You should recreate aclocal.m4 with macros from libtool 2.2.4 Debian-2.2.4-0ubuntu4
libtool: and run autoconf again.
make[2]: *** [ext/date/php_date.lo] Error 63
make[2]: Leaving directory `/home/slug/nslu2/optware/nslu2/builds/php'
make[1]: *** [/home/slug/nslu2/optware/nslu2/builds/php/.built] Error 2
make[1]: Leaving directory `/home/slug/nslu2/optware/nslu2'
apt-get remove libtool --purge
e poi installo a mano la 1.5 ?
se detto qualcosa che possa toccare le regole e ledere qualcuno del forum cancellate pure ed accettate le mie scuse
see you soon
Re: cross compilazione per cpu ARM
@biondo79: non posso aiutarti piu' di tanto perche' non ho conoscenza sufficiente per compilare in cross, tantomeno un'applicazione abbastanza complessa quale OSCa...per NSLU2...
Pero' noto che stai facendo un grosso errore di fondo: la compilazione in cross tramite toolchain, consente di generare codice per una macchina target differente da quella della macchina host che viene utilizzata per generare il codice stesso: ossia usi ubuntu x86 e relativo compilatore per arm per generare codice che girera' sotto e solo per ARM (NSLU2).
Non ha senso quindi di parlare di moduli e pacchetti che fanno riferimento alla macchina host perche' questo non sara' l'ambiente nella quale dovra' girare l'eseguibile (il quale sara' anche dipendente da una serie di librerie che sono specifiche di quell'ambiente e dell'applicazione)...
Il toolchain dovrebbe avere tutte le librerie necessarie alla compilazione dell'applicazione e nel caso non esistano, si devono compilare da sorgenti prima le lib (sempre per l'ambiente ARM) in maniera che possano essere linkate in fase di build all'applicazione per risolvere le dipendenze.
Insomma non e' un lavoro facile, visto il tipo di applicazione ti conviene "cercare in rete" se qualcuno ha compilato(anche in passato) con successo il CS (avevo ragione) che vorresti far girare sotto NSLU2...
ciao
Pero' noto che stai facendo un grosso errore di fondo: la compilazione in cross tramite toolchain, consente di generare codice per una macchina target differente da quella della macchina host che viene utilizzata per generare il codice stesso: ossia usi ubuntu x86 e relativo compilatore per arm per generare codice che girera' sotto e solo per ARM (NSLU2).
Non ha senso quindi di parlare di moduli e pacchetti che fanno riferimento alla macchina host perche' questo non sara' l'ambiente nella quale dovra' girare l'eseguibile (il quale sara' anche dipendente da una serie di librerie che sono specifiche di quell'ambiente e dell'applicazione)...
Il toolchain dovrebbe avere tutte le librerie necessarie alla compilazione dell'applicazione e nel caso non esistano, si devono compilare da sorgenti prima le lib (sempre per l'ambiente ARM) in maniera che possano essere linkate in fase di build all'applicazione per risolvere le dipendenze.
Insomma non e' un lavoro facile, visto il tipo di applicazione ti conviene "cercare in rete" se qualcuno ha compilato(anche in passato) con successo il CS (avevo ragione) che vorresti far girare sotto NSLU2...
ciao
vdr: 1.4.7+extpatch54 (pensionata), 1.7.27 (yavdr 0.4)
Percorri la via che porta al sole,
e non camminare sui sentieri oscuri.
E quando penso che sia finita,
è proprio allora che comincia la salita.
Percorri la via che porta al sole,
e non camminare sui sentieri oscuri.
E quando penso che sia finita,
è proprio allora che comincia la salita.
Re: cross compilazione per cpu ARM
si hai ragione ho confuso io... le cose
nel toolchain devo sostiuire il pacchetto della libtool ci provo stasera...
edit:
il pacchetto è giusto il problema è altrove
see you e grazie
nel toolchain devo sostiuire il pacchetto della libtool ci provo stasera...
edit:
il pacchetto è giusto il problema è altrove
see you e grazie
Re: cross compilazione per cpu ARM
Hello
io per compilare per arm(v4t) uso OE
non so se .... http://wiki.openembedded.net/index.php/Main_Page
SlugOS viene compilato usando OE dunque
http://cgit.openembedded.net/cgit.cgi/o ... OS5.3-beta
difetto: ti serve un pò (tanto) di spazio e devi "studiare" un pocchettino come usare il tutto.
bye
io per compilare per arm(v4t) uso OE
non so se .... http://wiki.openembedded.net/index.php/Main_Page
SlugOS viene compilato usando OE dunque
http://cgit.openembedded.net/cgit.cgi/o ... OS5.3-beta
difetto: ti serve un pò (tanto) di spazio e devi "studiare" un pocchettino come usare il tutto.
bye
VDRBOX-HD : in pensione!
ALTRO : freerunner (openmoko) ; nokia n900 ; 2 seagate dockstar, samsung ps64d8000, diversi dispositivi ARM (Allwinner, Amlogic)
Don't feed the trolls non alimentate sistemi proprietari
Linux rulez!
ALTRO : freerunner (openmoko) ; nokia n900 ; 2 seagate dockstar, samsung ps64d8000, diversi dispositivi ARM (Allwinner, Amlogic)
Don't feed the trolls non alimentate sistemi proprietari
Linux rulez!
Re: cross compilazione per cpu ARM
Scusa, ma forse sparo una cavolata: non puoi usare Optware per aggiungere il pacchetto già compilato?
VDRBOX:
Software: ArchLinux 0.8 Don't Panic, VDR 1.6.0-2 con Extension Patch v.62 (> 70 plugins in IT)
Hardware: Intel P4 2,4 Ghz, 1 GB RAM, DVB-S Hauppauge WinTV Nexus-S rev 2.1, DVB-T Terratec Cinergy 1400, telecomando Terratec
Case: Compaq D510 SFF
Software: ArchLinux 0.8 Don't Panic, VDR 1.6.0-2 con Extension Patch v.62 (> 70 plugins in IT)
Hardware: Intel P4 2,4 Ghz, 1 GB RAM, DVB-S Hauppauge WinTV Nexus-S rev 2.1, DVB-T Terratec Cinergy 1400, telecomando Terratec
Case: Compaq D510 SFF
Re: cross compilazione per cpu ARM
ok il problema cmq era nel CMakefile.txt nei sorgenti di oscam
ho aggiunto queste righe:
sistemato il toolchain cosi:
ora ho:
ora qst è l'unico neo che ho riscontrato -- Looking for openssl/aes.h - not found
see you
ho aggiunto queste righe:
Codice: Seleziona tutto
elseif (OSCAM_SYSTEM_NAME MATCHES "Nslu2")
set (OSCamOperatingSystem "Nslu2")
set (CS_OS_HW "nslu2")
set (CS_OS_SYS "linux")
sistemato il toolchain cosi:
Codice: Seleziona tutto
set (OSCAM_SYSTEM_NAME Nslu2)
set (CMAKE_SYSTEM_NAME Linux)
set (CMAKE_C_COMPILER /home/nslu2/optware/nslu2/toolchain/armv5b-softfloat-linux/gcc-3.3.5-glibc-2.2.5/bin/armv5b-softfloat-linux-gcc)
set (CMAKE_SYSTEM_PROCESSOR arm)
ora ho:
Codice: Seleziona tutto
cmake -DCMAKE_TOOLCHAIN_FILE=../toolchains/toolchain-arm-nslu2.cmake ..
-- The C compiler identification is GNU
-- Check for working C compiler: /home/nslu2/optware/nslu2/toolchain/armv5b-softfloat-linux/gcc-3.3.5-glibc-2.2.5/bin/armv5b-softfloat-linux-gcc
-- Check for working C compiler: /home/nslu2/optware/nslu2/toolchain/armv5b-softfloat-linux/gcc-3.3.5-glibc-2.2.5/bin/armv5b-softfloat-linux-gcc -- works
-- Detecting C compiler ABI info
-- Detecting C compiler ABI info - done
-- Looking for openssl/aes.h
-- Looking for openssl/aes.h - not found
-- The CXX compiler identification is GNU
-- Check for working CXX compiler: /home/nslu2/optware/nslu2/toolchain/armv5b-softfloat-linux/gcc-3.3.5-glibc-2.2.5/bin/armv5b-softfloat-linux-c++
-- Check for working CXX compiler: /home/nslu2/optware/nslu2/toolchain/armv5b-softfloat-linux/gcc-3.3.5-glibc-2.2.5/bin/armv5b-softfloat-linux-c++ -- works
-- Detecting CXX compiler ABI info
-- Detecting CXX compiler ABI info - done
--
-- operating system: Nslu2
-- system type: arm-nslu2-linux
-- system: linux
-- cpu: arm
-- hw: nslu2
-- use built-in aes functions
--
-- Configuring done
-- Generating done
-- Build files have been written to: /home/nslu2/oscam/build
ora qst è l'unico neo che ho riscontrato -- Looking for openssl/aes.h - not found
il problema non è tanto quello anche se non mi compila tutto quello che interessa a me è avere i gcc arm da usare in cross e come vedi ci sono arrivato mi manca solo capire quell aes perché fa cosiScusa, ma forse sparo una cavolata: non puoi usare Optware per aggiungere il pacchetto già compilato?
see you
Re: cross compilazione per cpu ARM
provo a ricompilare le le libssl
see you soon
see you soon
Re: cross compilazione per cpu ARM
Ciao, sei riuscito nel tuo intento ? E' un argomento molto interessante
Re: cross compilazione per cpu ARM
si si compila alla perferzione
sul sito diciamo della ledy oscar trovi il necessario per arm
see you soon
sul sito diciamo della ledy oscar trovi il necessario per arm
see you soon