Hallo Gruppe,
ich formuliere meine Fragestellung mal um:
Ich habe eine amd64 Debian jessie Plattform. Auf der lade ich einen Vanilla Kernel und lege den in zwei Verzeichnissen einmal für amd64 und einmal für i386 ab. Da rein kopiere ich je eine passend vorbereitete .config. Dann wird der amd64 Kern gebaut mit 'make oldconfig && make -j4'. Für den i386er Kern wähle ich stattdessen 'make ARCH=i386 oldconfig && make -j4'. Das liefert mir unter den jeweiligen Plattformen laufende Kerne. Lassen wir mal weg, dass ich daraus mühevoll noch DEB-Pakete baue, was sicher einfacher geht als mit meinem Scripthaufen.
Nun habe ich die Anforderung, speziell für den i386 Zweig, auch die Header mitzuliefern. Egal welches Werkzeug ich da zur Paketierung verwende, zu den Headern gehören offenbar auch ein paar Tools wie z.B scripts/basic/fixdep. Leider sind das nach o.g. Methode für i386 trotzdem 64-bit ELF. Dieser Umstand führt dazu, dass Drittsoftware auf der Zielplattform dann mit diesen Headern und Tools nicht in der Lage ist, sich zu installieren / seine Module zu bauen.
Nun habe ich den Befehl/Alias 'linux32' gefunden und den o.g. 'make' Befehlen vorangestellt - das macht leider keinen Unterschied. Auch habe ich noch keine für mich verständliche und funktionierende Anleitung gefunden, wie ich mir eine vernünftige cross-compile-Umgebung in debian einrichte.
Hat denn hier keiner einen Tipp für mich, wie ich einen i386 Kernel komplett und sauber in einer amd64 Umgebung bauen kann?
Mit freundlichen Grüßen / Kind regards Ronny Seffner -- Ronny Seffner | Alter Viehweg 1 | 01665 Klipphausen www.seffner.de | ronny@seffner.de | +49 35245 72950 7EA62E22D9CC4F0B74DCBCEA864623A568694DB8
-----Ursprüngliche Nachricht----- Von: Lug-dd [mailto:lug-dd-bounces@mailman.schlittermann.de] Im Auftrag von Ronny Seffner Gesendet: Dienstag, 7. März 2017 19:11 An: lug-dd@mailman.schlittermann.de Betreff: Debian Paketierung - Kernel
Hallo Gruppe,
in der vagen Vermutung es kennst sich neben Heiko noch einer mit DEB Paketen aus, frage ich mal hier statt direkt.
Ich baue aus den Vanilla-Sourcen auf einer amd64 Plattform Kerne für verschiedene Plattformen ('make ARCH='). Dazu habe ich ein Script, welches mir das Ergebnis mit ein paar Steuerdateien (CONTROL, changelog, postinst usw.) mittels 'dpkg-deb' zusammenpappt. Resultierend daraus habe ich DEB Pakete, die einen installierbaren Kernel enthalten. Noch habe ich Probleme mir das changelog mittels apt-listchanges bei der Installation anzeigen zu lassen, aber dazu an andere Stelle vielleicht mehr.
Nun gibt es Zielsysteme mit der Anforderung, nachträglich Software zu installieren, die Kernel-Header erfordert. Nun möchte ich mein Zeug dahingehend erweitern und denke, da muss doch was mit den fertigen Tools gehen.
'make-kpkg' gilt als veraltet - ok. Mit 'make kernel_headers' komme ich auch nicht so recht weiter. Dokumentationen von 'make deb-pkg' gehen immer davon aus, dass ich als Quellpaket auch schon ein DEB installiert habe. Ich habe es trotzdem gegen meine Vanillaquellen angewendet und erhalte einen installierbaren Kern und auch ein header-Paket. Leider greift die Drittsoftware dann auf scripts/basic/fixdep zu und das ist ein amd64 Binary. Auch ein Kompilieren direkt in den Quellen ('make ARCH=i386 fixdep') erzeugt wieder ein amd64 auf der Kompiliermaschine.
Könnte mich bitte jemand auf einen erfolgversprechenden Pfad bringen?
Mit freundlichen Grüßen / Kind regards Ronny Seffner -- Ronny Seffner | Alter Viehweg 1 | 01665 Klipphausen www.seffner.de | ronny@seffner.de | +49 35245 72950 7EA62E22D9CC4F0B74DCBCEA864623A568694DB8