kompilieren von kernel

Welches Modul/Treiber für welche Hardware, Kernel compilieren...
rendegast
Beiträge: 15041
Registriert: 27.02.2006 16:50:33
Lizenz eigener Beiträge: MIT Lizenz

Re: kompilieren von kernel

Beitrag von rendegast » 09.11.2016 01:11:13

KP97 hat geschrieben: Gibt es eine Möglichkeit, bei Verwendung von deb-pkg nur die Pakete für Linux-Image und evtl. auch die Headers zu erstellen?
scripts/package/Makefile oder 'make help':

Code: Alles auswählen

make ... bindeb-pkg
Erstellt hier (ohne CONFIG_DEBUG_INFO und den Eintrag von ben hutchings Zertifikat)

Code: Alles auswählen

-rw-r--r--  1 root root     1922 Nov  8 22:53 linux-4.8.6_4.8.6-1_amd64.changes
-rw-r--r--  1 root root   960670 Nov  8 22:49 linux-firmware-image-4.8.6_4.8.6-1_amd64.deb
-rw-r--r--  1 root root 10398066 Nov  8 22:50 linux-headers-4.8.6_4.8.6-1_amd64.deb
-rw-r--r--  1 root root 37342228 Nov  8 22:53 linux-image-4.8.6_4.8.6-1_amd64.deb
-rw-r--r--  1 root root   857108 Nov  8 22:50 linux-libc-dev_4.8.6-1_amd64.deb
und nicht das linux-4.8.6...orig.tar.gz.
Was aber mit ~ 140MB und recht schneller Erstellung (alles auf 4GB-tmpfs) gegenüber dem restlichen Bau nicht groß ins Gewicht fällt.






----------------------------------------------------
Ob ich mit diesem
https://people.debian.org/~benh/package ... g.cert.pem
den Kernel valide signieren kann?
CONFIG_SYSTEM_TRUSTED_KEYS="debian/certs/benh@debian.org.cert.pem"

Wäre ein Ding, wenn benh seinen secure-boot-Key so offen herumliegen ließe.

[bin]deb-pkg: kernel 4.8 baut damit und Pakete werden erstellt.
Ein Test ist mir mangels secure-boot-Hardware aber nicht möglich.
mfg rendegast
-----------------------
Viel Eifer, viel Irrtum; weniger Eifer, weniger Irrtum; kein Eifer, kein Irrtum.
(Lin Yutang "Moment in Peking")

KP97
Beiträge: 3403
Registriert: 01.02.2013 15:07:36

Re: kompilieren von kernel

Beitrag von KP97 » 09.11.2016 12:12:12

@rendegast
OK, das übersteigt aber wohl meine Kenntnisse zum Kernelbau.
Ich mache das ja auch nur für meinen Desktop. Zwar schon seit Jahren, aber wie schon erwähnt, ohne das ich schon mal einen Patch eingespielt hätte.
Über die Schnelligkeit mit deb-pkg war ich auch überrascht. Ich glaube, da ist es einfacher, die nicht benötigten Pakete zu löschen, als in den Makefiles rumzumachen.
Da ist es mit make-kpkg doch bequemer. Wenn der 4.4.31 kommt, werde ich noch mal @segmentationfault's Hinweis ausprobieren.

Vielen Dank an Dich für Deine Antwort.

rendegast
Beiträge: 15041
Registriert: 27.02.2006 16:50:33
Lizenz eigener Beiträge: MIT Lizenz

Re: kompilieren von kernel

Beitrag von rendegast » 09.11.2016 15:59:58

KP97 hat geschrieben: OK, das übersteigt aber wohl meine Kenntnisse zum Kernelbau.
Ich mache das ja auch nur für meinen Desktop. Zwar schon seit Jahren, aber wie schon erwähnt, ohne das ich schon mal einen Patch eingespielt hätte.
Über die Schnelligkeit mit deb-pkg war ich auch überrascht. Ich glaube, da ist es einfacher, die nicht benötigten Pakete zu löschen, als in den Makefiles rumzumachen.
Ich mache nicht "im Makefile rum" (zumindest nicht in diesem Fall)
- Die debuginfo zusätzlich erstellen verlängert den Kernelbau um einiges.
- Mit dem Eintrag für das benh-Zertifikat bricht (hier zumindest) der Kernelbau ab.

Wenn du Pakete per 'make deb-pkg' erstellen konntest, dürfte Dir das zweitere bekannt sein.
Das erstere ist ein allgemeiner Tip, den ich einfach nicht unterlassen kann zu verbreiten.

'make deb-pkg' <-> 'make bindeb-pkg'
unterscheidet nur die zusätzlich erstellte debian-Source bestehend aus orig.tar.gz, debian.tar.gz und dsc.
Imo vernachlässigbarer Unterschied, ich verschiebe halt nur die *.deb in mein lokales Repo.

Das 'bindeb-pkg' war mir auch neu, als ich gestern nachgesehen habe.
Im Kernel 4.4 findet es aber schon Verwendung.




Meine Aufruf reichere ich nur noch an mit

Code: Alles auswählen

nice -n15  make -j3 [bin]deb-pkg  KERNELRELEASE=4.8  KDEB_PKGVERSION=4.8.6
(Effektiver Aufruf, die Versionen konstruiert das benutzte Skript aus dem Makefile.
Damit bekomme ich einen stabilen Paketnamen "linux-image-4.8-custom" mit der Version des SUBLEVEL.)
mfg rendegast
-----------------------
Viel Eifer, viel Irrtum; weniger Eifer, weniger Irrtum; kein Eifer, kein Irrtum.
(Lin Yutang "Moment in Peking")

segmentationfault
Beiträge: 104
Registriert: 13.02.2011 07:24:43

Re: kompilieren von kernel

Beitrag von segmentationfault » 09.11.2016 17:36:10

Hallo KP97,

um auf Deine letzte Frage einzugehen verweise ich auf meinen ersten Beitrag.

Ich habe ehrlich gesagt auch keine Ahnung vom Patchen (sollte ich mal erlernen) aber ich habe einfach pragmatisch folgendes getan.

Wenn die Kernel-source entpackt ist befindet sich ja im Hauptverzeichnis ein Makefile (bitte nicht das makefile unter dem Unterverzeichnis /arch/x86 verwenden!)

Jedenfalls gibt es in dem Makefile im Hauptverzeichnis der Kernelsource eine Passage mit folgenden Zeilen:

all: vmlinux

XXXX

# The arch Makefile can set ARCH_{CPP,A,C}FLAGS to override the default
# values of the respective KBUILD_* variables
ARCH_CPPFLAGS :=

An der Stelle wo ich die XXXX hingeschrieben habe und im Original nichts steht ergänzt Du bitte folgenden Code:

KBUILD_CFLAGS += $(call cc-option, -fno-pie)
KBUILD_CFLAGS += $(call cc-option, -no-pie)
KBUILD_AFLAGS += $(call cc-option, -fno-pie)
KBUILD_CPPFLAGS += $(call cc-option, -fno-pie)


Danach bitte das Makefile abspeichern.

Danach folgt dann "make-kpkg clean" und "fakeroot make-kpkg --initrd --revision=Kernelversion kernel_image kernel_headers (Für Kernelversion dann bitte die gewünschte Version angeben z.B. 4.8.6 oder 4.9rc4)

Dann sollte es eigentlich mit gcc6 klappen. Das war mein Art zu patchen wobei wie oben schon geschrieben ein erfahrener Linuxer wohl den Kopf schütteln wird, aber es funktioniert halt.

Gruß
segmentationfault
Zuletzt geändert von segmentationfault am 10.11.2016 20:05:25, insgesamt 1-mal geändert.

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

Re: kompilieren von kernel

Beitrag von towo » 09.11.2016 17:40:09

Ein erfahrener Linuxer/Debianer schüttelt schon den Kopf wegen make-kpkg, das is schon so lange kaputt, dass man schon gar nicht mehr weiss, wie lange schon.

segmentationfault
Beiträge: 104
Registriert: 13.02.2011 07:24:43

Re: kompilieren von kernel

Beitrag von segmentationfault » 09.11.2016 17:52:51

Hallo towo,

ok, auch das stimmt, aber funktionieren tut es derweil noch und hat bisher keine Probleme bereitet.
Masn trennt sich eben nicht gerne von (noch) funktionierenden Abläufen.

Gruß
segmentationfault

rendegast
Beiträge: 15041
Registriert: 27.02.2006 16:50:33
Lizenz eigener Beiträge: MIT Lizenz

Re: kompilieren von kernel

Beitrag von rendegast » 09.11.2016 19:05:22

OT
towo hat geschrieben: wegen make-kpkg, das is schon so lange kaputt,
Soll das auch für Debiankernel-package 13.018 von 2016-02 gelten?
mfg rendegast
-----------------------
Viel Eifer, viel Irrtum; weniger Eifer, weniger Irrtum; kein Eifer, kein Irrtum.
(Lin Yutang "Moment in Peking")

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

Re: kompilieren von kernel

Beitrag von towo » 09.11.2016 19:19:07

rendegast hat geschrieben:OT
towo hat geschrieben: wegen make-kpkg, das is schon so lange kaputt,
Soll das auch für Debiankernel-package 13.018 von 2016-02 gelten?
Da is selbiges schon ewig nicht mehr benutze, weil es eben kaputt war (hat die symlinks in /lib/modules/$(uname -r) nicht erzeugt), weiss ich es nicht.
Aber da auch die Debian-Wikis mittlerweile make deb-pkg empfehlen, könnte es schon sein, da dieser Fehler über mehrer Releases weiter geschleppt wurde.

Die Debian Kernel werden ja sowieso nicht darüber gebaut, deshalb hat das Paket eh' keine sonderliche Priorität.

KP97
Beiträge: 3403
Registriert: 01.02.2013 15:07:36

Re: kompilieren von kernel

Beitrag von KP97 » 09.11.2016 20:41:53

@segmentationfault
Ja, so hatte ich das auch in Deinem ersten Beitrag verstanden und werde das beim nächsten Kernel auch probieren.
Da ist es mir egal, ob die Methode schön ist oder nicht.
Ich wollte eher wissen, ob mein Befehl zum Ausführen des Patches richtig ist, aber da Du auch noch keine selbigen eingespielt hast, kannst Du nichts dazu sagen, klar.

@towo, @rendegast
Mir ist bekannt, daß der Befehl make-kpkg von Debian nicht mehr empfohlen wird. Ich hatte allerdings noch nie einen Fehler feststellen können, und solange das so ist, nutze ich das auch weiterhin. Ist halt angenehmer, wenn ich z.B. nur ein einziges Paket erstellen kann, als vier oder fünf, die ich letztlich nicht brauche.
Anders als bei euch beiden, läuft mein Kernel nur auf meinem Desktop, daher muß ich nicht so ins Detail gehen. Für mich reicht das so...
und wenn ich jetzt auch noch wüßte, wie man richtig einen Patch einspielt, wäre ich zufrieden.
Da der Patch aus dem Bugreport ja nicht gezippt ist, habe ich zur Sicherheit von kernel.org auch noch einen passend zur Kernelversion heruntergeladen.
Mit meinem Befehl wurde der Ablauf zwar gestartet, aber es tat sich nichts weiter. Mit htop konnte ich sehen, daß beide CPU's bei 0,0% bzw. 0,7% vor sich hin dümpelten.
Nach einer Weile habe ich das abgebrochen, und zwar ohne eine weitere Meldung zu erhalten. Daher tappe ich etwas im Dunkeln, was ich falsch gemacht haben könnte.

KP97
Beiträge: 3403
Registriert: 01.02.2013 15:07:36

Re: kompilieren von kernel

Beitrag von KP97 » 10.11.2016 17:52:30

@segmentationfault
So, heute ist ein neuer Kernel 4.4.31 erschienen und ich habe es mit Deinem Hinweis zum Makefile probiert.
Das hat tadellos funktioniert!

Nochmals Dank für Deinen Hinweis.

segmentationfault
Beiträge: 104
Registriert: 13.02.2011 07:24:43

Re: kompilieren von kernel

Beitrag von segmentationfault » 10.11.2016 19:59:49

Hallo zusammen,

noch ein Kommentar zum make-kpkg, auch wenn es fast schon für die Rubrik Smalltalk abdriftet.

In der Dokumentation zu Debian Jessie (Installationsanleitung) ist in Kapitel 8.6 immer noch das Bauen mit "make-kpkg clean" und "fakeroot make-kpkg --initrd --revision=Kernelversion" beschrieben:

Clean the source tree and reset the kernel-package parameters. To do that, do make-kpkg clean.

Now, compile the kernel: fakeroot make-kpkg --initrd --revision=1.0.custom kernel_image. The version number of “1.0” can be changed at will; this is just a version number that you will use to track your kernel builds. Likewise, you can put any word you like in place of “custom” (e.g., a host name). Kernel compilation may take quite a while, depending on the power of your machine.

Ich kann mich aber dennoch erinnern, daß schon vor mehr als 2 Jahren von make-kpkg abgeraten und make deb-pkg als geeignet(er) dargestellt wurde.

Ich vermute, daß der Inhalt zum Kompilieren des Kernels von den älteren Versionen (Lenny/Squeeze) der Installationsanleitungen übernommen und an dem Kapitel dann nicht mehr gearbeitet wurde. Das ist aber nur eine Annahme.

Gruß
Segmentationfault

KP97
Beiträge: 3403
Registriert: 01.02.2013 15:07:36

Re: kompilieren von kernel

Beitrag von KP97 » 15.12.2016 13:10:34

Kurze Info:
make-kpkg funktioniert wieder mit gcc-6, ohne daß Änderungen im Makefile vorgenommen werden müssen.

segmentationfault
Beiträge: 104
Registriert: 13.02.2011 07:24:43

Re: kompilieren von kernel

Beitrag von segmentationfault » 15.12.2016 17:27:37

Hallo,

und in Kernel 4.9 zumindest bei rc7 und rc8 sowie dem freigegebenen 4.9 braucht man auch nicht mehr CONFIG_MODVERSIONS deaktivieren.

Ich benutze aber das make-kpkg nicht mehr da towo die Nachteile erläutert hatte und es z.B. bei mir dazu führte, daß ich die Kernel-sourcen an dem Ort lassen muss um z.B. Virtualbox zu betreiben und mit make deb-pkg ist das nicht mehr notwendig und auch eben nicht mehr das Paket kernel-package.

Gruß
segmentationfault

Antworten