Vanilla-Kernel patchen und kompillieren

Welches Modul/Treiber für welche Hardware, Kernel compilieren...
Antworten
scientific
Beiträge: 3020
Registriert: 03.11.2009 13:45:23
Lizenz eigener Beiträge: Artistic Lizenz
Kontaktdaten:

Vanilla-Kernel patchen und kompillieren

Beitrag von scientific » 16.01.2017 11:15:14

Hi Leute!

Ich bin in Kernel-Fragen noch nicht so wirklich fix... Mir gelingt es zwar, nach Anleitung einen neuen Kernel zu kompillieren... das war es aber auch schon.
Mein Laptop hat ein ACPI-Problem und ich ab dazu einen Bugreport verfasst. Sowohl auf bugs.debian.org, als auch auf kernel.org.

Jetzt hab ich vom Kernel-Entwickler einen Patch bekommen https://bugzilla.kernel.org/show_bug.cgi?id=191561 und weiß nicht, wie ich den Kernel gepatcht bekomme.

Den Link hab ich mittels wget runtergeladen und in acpi-polling-gpe-not-enabled.diff benannt.
Weiters hab ich mir die Vanilla-Sourcen von hier https://cdn.kernel.org/pub/linux/kernel ... rc4.tar.xz mit wget geholt und entpackt und mit dieser Anleitung
http://www.linuxhaven.de/dlhp/HOWTO/DE- ... WTO-5.html mit

Code: Alles auswählen

cat acpi-polling-gpe-not-enabled.diff | patch -p0 2>&1 | tee patch.out
versucht zu patchen.

Den Patch hab ich ins Verzeichnis ~/src/linux-4.10-rc4 kopiert und den obigen patch-Befehl auch in diesem Verzeichnis ausgeführt.

Code: Alles auswählen

 $ cat acpi-polling-gpe-not-enabled.diff | patch -p0 2>&1 | tee patch.out
can't find file to patch at input line 12
Perhaps you used the wrong -p or --strip option?
The text leading up to this was:
--------------------------
|From: Lv Zheng <lv.zheng@intel.com>
|Subject: [PATCH] ACPI / EC: Use busy polling mode when GPE is not enabled
|
|Useful for bootup/shutdown processes.
|
|Signed-off-by: Lv Zheng <lv.zheng@intel.com>
|---
|Index: linux-acpica/drivers/acpi/ec.c
|===================================================================
|--- linux-acpica.orig/drivers/acpi/ec.c
|+++ linux-acpica/drivers/acpi/ec.c
--------------------------
File to patch:
Skip this patch? [y]
Skipping patch.
8 out of 8 hunks ignored
can't find file to patch at input line 138
Perhaps you used the wrong -p or --strip option?
The text leading up to this was:
--------------------------
|Index: linux-acpica/drivers/acpi/internal.h
|===================================================================
|--- linux-acpica.orig/drivers/acpi/internal.h
|+++ linux-acpica/drivers/acpi/internal.h
--------------------------
File to patch:
Skip this patch? [y]
Skipping patch.
1 out of 1 hunk ignored
Dann hab ich nach den Files im Verzeichnis gesucht, die im Patch angegeben sind... jedoch die finden sich nicht wieder...

Im Patchfile ist die Datei gesucht:

Code: Alles auswählen

--- linux-acpica.orig/drivers/acpi/ec.c
+++ linux-acpica/drivers/acpi/ec.c
jedoch gibt es nur diese hier:

Code: Alles auswählen

z.B. $ find |grep '/ec.c$'
./drivers/acpi/ec.c
Was mache ich da falsch?

lg scientific
dann putze ich hier mal nur...

Eine Auswahl meiner Skripte und systemd-units.
https://github.com/xundeenergie

auch als Debian-Repo für Testing einbindbar:
deb http://debian.xundeenergie.at/xundeenergie testing main

Benutzeravatar
smutbert
Moderator
Beiträge: 8315
Registriert: 24.07.2011 13:27:39
Wohnort: Graz

Re: Vanilla-Kernel patchen und kompillieren

Beitrag von smutbert » 16.01.2017 14:08:46

Hoffentlich überseh ich jetzt nichts, aber die Datei, die du gefunden hast, das ist schon die richtige, nur hat der Kernel-Entwickler seine Arbeitskopie des Quellcodeverzeichnisses offensichtlich linux-acpica genannt. Eigentlich fühle ich mich nun so gar nicht berufen, dir zu sagen wie man einen Patch anwendet, denn ich kann mich gut erinnern, dass ich wegen meiner Unfähigkeit mit den Optionen von patch umzugehen Patches auch schon von Hand mit einem Texteditor angewendet habe, aber ich würde es so versuchen

Code: Alles auswählen

$ cd ~/src/linux-4.10-rc4
$ patch -p1 < acpi-polling-gpe-not-enabled.diff
Die Anleitung nach der du dich gerichtet hast, geht offensichtlich davon aus, dass der Name des Verzeichnisses mit dem Kernelquellcode übereinstimmt. Wenn du also linux-4.10-rc4 nach linux-acpica umbenennst, sollte es auch mit -p0 klappen, dann aber von einer Verzeichnisebene darüber ausgeführt.

scientific
Beiträge: 3020
Registriert: 03.11.2009 13:45:23
Lizenz eigener Beiträge: Artistic Lizenz
Kontaktdaten:

Re: Vanilla-Kernel patchen und kompillieren

Beitrag von scientific » 16.01.2017 14:50:57

Vielen Dank lieber smutbert!
smutbert hat geschrieben:Hoffentlich überseh ich jetzt nichts, aber die Datei, die du gefunden hast, das ist schon die richtige, nur hat der Kernel-Entwickler seine Arbeitskopie des Quellcodeverzeichnisses offensichtlich linux-acpica genannt. Eigentlich fühle ich mich nun so gar nicht berufen, dir zu sagen wie man einen Patch anwendet, denn ich kann mich gut erinnern, dass ich wegen meiner Unfähigkeit mit den Optionen von patch umzugehen Patches auch schon von Hand mit einem Texteditor angewendet habe, aber ich würde es so versuchen

Code: Alles auswählen

$ cd ~/src/linux-4.10-rc4
$ patch -p1 < acpi-polling-gpe-not-enabled.diff
Die Anleitung nach der du dich gerichtet hast, geht offensichtlich davon aus, dass der Name des Verzeichnisses mit dem Kernelquellcode übereinstimmt. Wenn du also linux-4.10-rc4 nach linux-acpica umbenennst, sollte es auch mit -p0 klappen, dann aber von einer Verzeichnisebene darüber ausgeführt.
Ich habe etwas ähnliches vermutet... hab mich nur noch nicht drübergetraut, da das kompilierten des Kernels auf meinem Systemd doch >2 Stunden in Anspruch nimmt...

lg scientific
dann putze ich hier mal nur...

Eine Auswahl meiner Skripte und systemd-units.
https://github.com/xundeenergie

auch als Debian-Repo für Testing einbindbar:
deb http://debian.xundeenergie.at/xundeenergie testing main

Antworten