cross compilazione per cpu ARM

Hardware esterno.
Panelli LCD, TFT, HDTV, Telecomandi, Xbox-client, etc.

Moderatori: ragno, tapino, alez, zulu, davidea

Rispondi
biondo79
Messaggi: 200
Iscritto il: 20 ago 2007, 14:25

cross compilazione per cpu ARM

Messaggio da biondo79 »

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
Avatar utente
ragno
Messaggi: 3017
Iscritto il: 20 gen 2007, 09:43
Località: Marte e dintorni
Contatta:

Re: cross compilazione per cpu ARM

Messaggio da ragno »

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 :lol:
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.
biondo79
Messaggi: 200
Iscritto il: 20 ago 2007, 14:25

Re: cross compilazione per cpu ARM

Messaggio da biondo79 »

non so se si puo' dire ... :roll:

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'
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
Avatar utente
ragno
Messaggi: 3017
Iscritto il: 20 gen 2007, 09:43
Località: Marte e dintorni
Contatta:

Re: cross compilazione per cpu ARM

Messaggio da ragno »

@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
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.
biondo79
Messaggi: 200
Iscritto il: 20 ago 2007, 14:25

Re: cross compilazione per cpu ARM

Messaggio da biondo79 »

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
Avatar utente
von fritz
Messaggi: 1479
Iscritto il: 18 gen 2007, 23:33

Re: cross compilazione per cpu ARM

Messaggio da von fritz »

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 :wink:
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! :)
Avatar utente
Gringo
Messaggi: 1796
Iscritto il: 21 gen 2007, 19:36

Re: cross compilazione per cpu ARM

Messaggio da Gringo »

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
biondo79
Messaggi: 200
Iscritto il: 20 ago 2007, 14:25

Re: cross compilazione per cpu ARM

Messaggio da biondo79 »

ok il problema cmq era nel CMakefile.txt nei sorgenti di oscam

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

Scusa, ma forse sparo una cavolata: non puoi usare Optware per aggiungere il pacchetto già compilato?
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 cosi


see you
biondo79
Messaggi: 200
Iscritto il: 20 ago 2007, 14:25

Re: cross compilazione per cpu ARM

Messaggio da biondo79 »

provo a ricompilare le le libssl

see you soon
homer314
Messaggi: 44
Iscritto il: 01 nov 2009, 15:20

Re: cross compilazione per cpu ARM

Messaggio da homer314 »

Ciao, sei riuscito nel tuo intento ? E' un argomento molto interessante
biondo79
Messaggi: 200
Iscritto il: 20 ago 2007, 14:25

Re: cross compilazione per cpu ARM

Messaggio da biondo79 »

si si compila alla perferzione

sul sito diciamo della ledy oscar trovi il necessario per arm


see you soon
Rispondi