Cross-Compiling für Bananapi-Pro

Gast #4262243
Lesenswert?
• ▲
▼
Moin,

ich möchte eine Cross-Compiling-Umgebung für den bananapi-Pro aufsetzen. 
Das Host-System ist Ubuntu 14, auf dem BPro läuft ebenfalls Ubuntu 14 
(LUbuntu).

Hat jemand Tips/Ratschläge/Erfahrungen dazu/damit? Ich bin gerade dabei, 
mich in Scratchbox einzuarbeiten, das klingt recht vielversprechend. Hat 
das schon mal jemand benutzt?
Es geht nicht (nur) um den Kernel sondern hauptsächlich um Anwendungen, 
die üblicherweise einen Haufen ARM-compilierter Libraries dazulinken, 
und ich will natürlich nicht das ganze System parallel noch einmal auf 
dem Host pflegen müssen.

Comments are welcome.
Danke
Gast #4262263
Lesenswert?
• ▲
▼
> du musst eh 2 Versionen pflegen. Einmal die ARM und einmal die x68.

Ich meinte, ich will keine Kopie des ARM-Systems auf dem PC hosten, nur 
um das Cross-Compiling machen zu können. Die beiden ARM-Systeme müsste 
ich nämlich konsistent halten. Deswegen meine Idee mit der Scratchbox.
Gast #4262746
Lesenswert?
• ▲
▼
Vancouver schrieb:
> Es geht nicht (nur) um den Kernel sondern hauptsächlich um Anwendungen,
> die üblicherweise einen Haufen ARM-compilierter Libraries dazulinken,
> und ich will natürlich nicht das ganze System parallel noch einmal auf
> dem Host pflegen müssen.

Wenn dein Cross-Compiler auch linken soll, dann müssen die Libraries 
dort verfügbar sein.
Die Header sowieso.

Option, wenn es dir nicht so sehr ums Cross-Compilen an sich, als eher 
um schnelleres Compilieren geht: distcc.

auf dem BPi läuft dann je nach Config nur noch make und 
Präprozessor&Linker, das Compilieren kannst du auf einen ganzen 
Server-Park verteilen.

Die "Arbeitssklaven" brauchen dazu nur den nackten (arm-) Compiler, 
keine Header oder Libraries.
Gast #4262815
Lesenswert?
• ▲
▼
> Option, wenn es dir nicht so sehr ums Cross-Compilen an sich, als eher
> um schnelleres Compilieren geht: distcc.

Ja, darum geht es eigentlich. Kleinere Programme habe ich immer direkt 
auf dem BPi übersetzt, aber das Paket, das ich jetzt übersetzen will 
(GnuRadio), braucht in der x86-Version eine gute Stunde (mit 6 Cores). 
Das brauche ich auf dem BPi gar nicht zu probieren.

DistCC hatte ich noch garnicht auf dem Schirm... vielen Dank für den 
Tip.
Gast #4262945
Lesenswert?
• ▲
▼
Ich habe noch ein Mini-System mit einem Arm von TI.
Für diesen haben ich auf dem Linux-PC die Linaro-Toolchain installiert:

https://www.linaro.org/downloads/

Damit kann ich auch einem Intel Linux die Arm Programme kompilieren.
Es sind Gcc, Linker und einige Tools mit dabei. Auch die 
Basisbibliotheken sind integriert.

Müßte man mal ausprobieren, ob das auch für den Raspi passt.
Gast #4262952
Lesenswert?
• ▲
▼
Vancouver schrieb:
> aber das Paket, das ich jetzt übersetzen will
> (GnuRadio), braucht in der x86-Version eine gute Stunde (mit 6 Cores).

sicher das dein System sonst ok ist? Der Linux kernel braucht nicht mal 
nur 20min mit einen Kern auf meinem System.

Ist GnuRadio wirklich "groß"?
Gast #4262999
Lesenswert?
• ▲
▼
> sicher das dein System sonst ok ist? Der Linux kernel braucht nicht mal
> nur 20min mit einen Kern auf meinem System.

Hat mich auch gewundert. Keine Ahnung, warum GnuRadio so ein Act ist. 
Auf einem Dualcore-Notebook läuft das knappe 5 Stunden, aber ich glaube 
da ist das Problem der knappe Speicher (swapping). Der "normale" 
Linux-Kernel braucht bei mir etwa 5 Minuten mit 6 Kernen, das passt 
ungefähr.
Gast #4263005
Lesenswert?
• ▲
▼
@PittyJ:

> Auch die Basisbibliotheken sind integriert.

Wenn es um den Kernel geht, reicht das vermutlich. Aber für Anwendungen 
braucht man noch alle möglichen weiteren Libraries (fftw, usb, png, weiß 
der Kuckuck was...)
Gast #4263020
Lesenswert?
• ▲
▼
Vancouver schrieb:
> @PittyJ:
>
>> Auch die Basisbibliotheken sind integriert.
>
> Wenn es um den Kernel geht, reicht das vermutlich. Aber für Anwendungen
> braucht man noch alle möglichen weiteren Libraries (fftw, usb, png, weiß
> der Kuckuck was...)

Da hast du aber was vor ...
1
[ebuild  N     ] net-wireless/gnuradio-3.7.8:0/3.7.8::gentoo to /usr/armv7a-hardfloat-linux-gnueabi/ USE="alsa analog audio digital filter qt4 utils -atsc -channels -doc -dtv -examples -fcd -fec -grc -jack -log -noaa -oss -pager -performance-counters -portaudio -sdl {-test} -trellis -uhd -vocoder -wavelet -wxwidgets -zeromq" PYTHON_TARGETS="python2_7"

nehme ich mal QT weg dann  sind es ca.
1
USE="-qt4" emerge-armv7a-hardfloat-linux-gnueabi -p gnuradio | wc -l
2

3
The following USE changes are necessary to proceed:
4
 (see "package.use" in the portage(5) man page for more details)
5
# required by sci-libs/scipy-0.16.0::gentoo
6
# required by net-wireless/gnuradio-3.7.8::gentoo[filter]
7
# required by gnuradio (argument)
8
>=dev-python/numpy-1.9.2 lapack
9
75
weil da dev-python/numpy unmasked werden muss.

Schaue mal auf
https://wiki.debian.org/ArmHardFloatPort
da hast du weniger Arbeit (für einen Anfänger) in Cross Compiling
Gast #4263077
Lesenswert?
• ▲
▼
> Da hast du aber was vor ...

Ja, ich weiß, das ist ein dicker Brocken. Aber ich brauche nicht alles 
davon, der BPi soll sozusagen als GnuRadio-Server arbeiten, also nur die 
Signalverarbeitung machen. Damit fällt das ganze QT-Zeug weg, weil es 
keine GUI gibt, und den Audio-Kram brauche ich auch nur zum Teil. Evtl 
kann ich auch auf Teile der Python-Module verzichten, da bin ich noch 
nicht ganz durchgestiegen.

> Schaue mal auf
> https://wiki.debian.org/ArmHardFloatPort


Super Tip, danke! Das schaue ich mir mal an.

Ich sehe schon, das war eine sehr gute Idee hier zu posten.

Antwort schreiben

Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt. Bitte hier nur auf die ursprüngliche Frage antworten, für neue Fragen einen neuen Beitrag erstellen.

Formatierung
  • [c]C-Code[/c]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] – Link zu einem Artikel
  • Verweis auf einen anderen Beitrag: Rechtsklick auf dessen Beitrags-ID (#8078628), „Adresse kopieren“, in den Text einfügen

Mehr zur Formatierung

Längeren Sourcecode als Anhang, nicht in den Text. JPG nur für Fotos und Scans; Zeichnungen und Screenshots als PNG oder GIF. Siehe Bildformate.

Schon registriert? Anmelden

Wird nicht angezeigt. Wir schicken dir einen Link; sobald du damit bestätigst, erscheint dein Beitrag.

Mit dem Abschicken legst du einen kostenlosen Account an und erkennst die Nutzungsbedingungen und die Datenschutzerklärung an.