cross compiling?

Welches Modul/Treiber für welche Hardware, Kernel compilieren...
Antworten
guennid

cross compiling?

Beitrag von guennid » 27.07.2016 13:41:55

Ob man das, was ich vorhabe, so nennt, wie im Titel angegeben, weiß ich nicht.
Ich möchte einen individuellen Kern für i368 aus den Sourcen auf einem amd64-System bauen. Geht das? Wie geht das? Kernelbauen an sich kann ich - mit make menuconfig und make-kpkg.

Grüße, Günther

Benutzeravatar
towo
Beiträge: 4408
Registriert: 27.02.2007 19:49:44
Lizenz eigener Beiträge: GNU Free Documentation License

Re: cross compiling?

Beitrag von towo » 27.07.2016 14:13:39

CCFLAGS=m32 CXXFLAGS=m32 linux32 make -j3 deb-pkg

Sollte funktionieren, so die benötigten 32bit Pakete im System installiert sind, sowie in deinem Makefile die CPU auch als 32bit Target angegeben ist.
Sauber ist das allerdings nicht wirklich.
Besser wäre es die Debian-Sourcen zu benutzen und per 32bit pbuilder zu bauen.

guennid

Re: cross compiling?

Beitrag von guennid » 27.07.2016 15:28:17

Dane für die Hinweise!

Aber ich fürchte, das überfordert mich schon wieder.

Die Quellen hole ich mir immer von kernel.org. Da gibt es, soweit ich sehe, keinen Unterschied zwischen i386 und amd64. Blauäugig wie ich bin, hatte ich mir vorgestellt, es reichte, an ein paar Schrauben in menuconfig herumzudrehen. Werde ich vielleicht doch besser auf einer i386-Maschine kompilieren. Schade, denn die amd64 Maschine wäre erheblich schneller gewesen.

Benutzeravatar
hikaru
Moderator
Beiträge: 13594
Registriert: 09.04.2008 12:48:59

Re: cross compiling?

Beitrag von hikaru » 27.07.2016 15:48:07

Ich stelle mich bisher auch zu blöd zum Crosscompilieren an, bzw. bin zu faul, mir die nötigen Kenntnisse anzueignen.
In den seltenen Fällen wo ich es denn mal gebrauchen könnte, erstelle ich i686-Kompilate einfach in einer i686-VM. So kann ich meine schnelle amd64-CPU nutzen ohne mir Gedanken über Compilerflags zu machen. Und alles was es mich kostet ist ein wenig mehr Speicher für die VM (sowohl auf der HDD als auch im RAM).
Ein i686-chroot würde es wohl auch tun. Soweit ich weiß macht pbuilder im Grunde auch nichts anderes.

guennid

Re: cross compiling?

Beitrag von guennid » 27.07.2016 16:01:45

"i686-VM" Gute Idee! Danke! Ich glaube, auf der in Frage kommenden Maschine läuft sogar noch eine VB. Lange nicht mehr benutzt, weil mir das Gerödel mit VB und eigenen Kerneln eigentlich auch zu lästig ist.

Grüße, Günther

Benutzeravatar
novalix
Beiträge: 1909
Registriert: 05.10.2005 12:32:57
Lizenz eigener Beiträge: MIT Lizenz
Wohnort: elberfeld

Re: cross compiling?

Beitrag von novalix » 27.07.2016 22:59:39

Wenn Du make-kpkg verwendest sollten die Argumente

Code: Alles auswählen

--arch i386 --cross-compile
zusätzlich zu Deiner übrigen Argumentkette reichen.
Optional wäre dann noch

Code: Alles auswählen

--arch-in-name
Damit es zu keinen Verwechslungen kommt.
Das Wem, Wieviel, Wann, Wozu und Wie zu bestimmen ist aber nicht jedermannns Sache und ist nicht leicht.
Darum ist das Richtige selten, lobenswert und schön.

guennid

Re: cross compiling?

Beitrag von guennid » 28.07.2016 17:07:35

@novalix
Danke sehr! so etwa hatte ich mir das erhofft. Ich werde es testen, wenn ich einen neueren Kern baue. Der, den ich jetzt baue, ist eh nur eine Übergangslösung und dafür reicht einmal Sourcen auspacken. :wink:

Benutzeravatar
novalix
Beiträge: 1909
Registriert: 05.10.2005 12:32:57
Lizenz eigener Beiträge: MIT Lizenz
Wohnort: elberfeld

Re: cross compiling?

Beitrag von novalix » 28.07.2016 19:55:53

Da fällt mir noch ein:
Zur Konfiguration braucht es ja auch noch die Information zur Architektur.
Dazu einfach die Umgebungsvariable KPKG_ARCH setzen.

Code: Alles auswählen

KPKG_ARCH=i386 make menuconfig
Ist jetzt alles aus der Erinnerung heraus aufgeschrieben. Ich bin mir aber recht sicher, dass es so funktionieren wird.
Das Wem, Wieviel, Wann, Wozu und Wie zu bestimmen ist aber nicht jedermannns Sache und ist nicht leicht.
Darum ist das Richtige selten, lobenswert und schön.

Antworten