So wenden Sie Kernel-Patches an

7

Ich habe Kernel aus dem Mainline-Repository installiert - alles einfach dort, nur *.debDateien, man kann es einfach dpkg -imachen. Aber wie kann man die Patches anwenden 0001-base-packaging.patch, 0002-debian-changelog.patch, 0003-configs-based-on-Ubuntu-4.4.0-0.10.patchmanuell?

Sergiy Kolodyazhnyy
quelle

Antworten:

10

Wie in README auf der Hauptzeile angegeben :

Diese Binärpakete stellen Builds des Haupt- oder stabilen Linux-Kernelbaums beim folgenden Commit dar:

v4.4 (afd2ff9b7e1b367172f18ba7f693dfb62bdcb2dc)

Um die Quelle zu erhalten, aus der sie erstellt wurden, rufen Sie das folgende Commit ab:

git://git.launchpad.net/~ubuntu-kernel-test/ubuntu/+source/linux/+git/mainline-crack v4.4

und bringen Sie die folgenden Patches in der folgenden Reihenfolge oben an:

0001-base-packaging.patch
0002-debian-changelog.patch
0003-configs-based-on-Ubuntu-4.4.0-0.10.patch

Dies bedeutet, dass Sie diese Patches nur anwenden müssen, wenn Sie Ihren Kernel aus dem Quellcode und nicht aus dem Quellcode erstellen *.deb.

Wenn Sie es aus dem Quellcode erstellen, müssen Sie folgende Schritte ausführen:

  1. Installieren Sie diese Pakete:

    sudo apt-get install git build-essential kernel-package fakeroot libncurses5-dev
    
  2. Holen Sie sich den Quellcode:

    mkdir anyname; cd anyname
    git clone git://git.launchpad.net/~ubuntu-kernel-test/ubuntu/+source/linux/+git/mainline-crack v4.4
    
  3. Kopieren Sie die Patches.

  4. Wechseln Sie in das Kernel-Verzeichnis:

    cd v4.4
    
  5. Nehmen Sie benutzerdefinierte Änderungen vor.

  6. Patches anwenden:

    patch -p1 < ~/anyname/0001-base-packaging.patch
    patch -p1 < ~/anyname/0002-debian-changelog.patch
    patch -p1 < ~/anyname/0003-configs-based-on-Ubuntu-4.4.0-0.10.patch
    
  7. Machen:

    cp /boot/config-`uname -r` .config
    gedit .config
    
    make oldconfig
    make menuconfig
    
    make clean
    make -j `getconf _NPROCESSORS_ONLN` deb-pkg LOCALVERSION=-custom
    
  8. Installierte deb installieren:

    sudo dpkg -i ../*.deb
    
  9. Aktualisieren GRUBund neu starten:

    sudo update-grub; sudo reboot
    
Raphael
quelle
Kurz gesagt, wenn ich die *.debDateien verwende, sind bereits Patches vorhanden?
Sergiy Kolodyazhnyy
@Serg - Ja! Recht.
Raphael
Ich denke nicht, dass die Paketliste vollständig ist. Zum Beispiel und ab Kernel 4.3 libssl-devwird benötigt.
Doug Smythies
Nachdem oldconfig ausgeführt wurde, unterscheidet sich die Konfiguration erheblich von der vom Mainline-Kernel bereitgestellten (z. B. Extrahieren von boot / config-xxxx aus linux-image-xxxx.deb). Es wäre wünschenswert, eine identische Konfiguration zu haben wie die, die ausgeliefert wurde.
Kevinf
vergessen, den wichtigen Teil "git checkout v4.4" zu tun, kompilieren Sie den Hauptzweig nicht v4.4
user249654