PPA-Upload eines benutzerdefinierten Kernelpakets

PPA-Upload eines benutzerdefinierten Kernelpakets

Gibt es eine Dokumentation zum Erstellen benutzerdefinierter Kernel-Pakete undLaden Sie das Ergebnis in ein PPA hoch? Insbesondere möchte ich hauptsächlich den stabilen Upstream-Kernel (also git://git.kernel.org/pub/scm/linux/kernel/git/stable/linux-stable.git) mit einem Patch für MPTCP erstellen. Da der MPTCP-Patch eine ganz bestimmte Kernel-Version erfordert, kann ich nicht einfach die Ubuntu-Kernel-Repositories verwenden.

Bisher habe ich Folgendes gefunden:

  • Das manuelle Erstellen von Kerneln funktioniert natürlich auch, d. h.: fakeroot make-kpkg clean CONCURRENCY_LEVEL= getconf _NPROCESSORS_ONLNfakeroot make-kpkg --initrd --append-to-version=-mptcp \ kernel_image kernel_headers kernel_source kernel_doc kernel_manual kernel_debug

Dann bekomme ich .deb-Pakete. „dpkg -i …“ funktioniert auch, aber ich möchte die Paketverwaltung mit apt-get und einem PPA automatisieren.

  • make-kpkg generiert keine .changes-Datei, die für dput erforderlich ist. Ich habe natürlich die Dokumentation und Manpage von make-kpkg überprüft und die Quellen des Kernel-Pakets durchsucht -> keine Informationen darüber, wie man die richtige Ausgabe generieren kann.

  • Einige andere Benutzer (wiehttps://forum.ubuntuusers.de/topic/ppa-mit-custom-kernel-erstellen/) hat es auch nicht geschafft, einen Kernel-PPA-Upload durchzuführen. Zumindest ist keine Dokumentation dazu verfügbar.

Gibt es eine Möglichkeit, mit vertretbarem Aufwand PPA-uploadbare Kernelpakete zu erstellen?

Antwort1

Ich hatte die gleiche Frage und habe endlich eine funktionierende Lösung gefunden.

Folgendes hat bei mir funktioniert. Einige Schritte können sicherlich optimiert werden.

  1. Holen Sie sich den Quellcode für einen Mainline-Build, überprüfen Sie dieQUELLENDatei und alles abrufen:

    git clone git://git.launchpad.net/~ubuntu-kernel-test/ubuntu/+source/linux/+git/mainline-crack
    cd mainline-crack/
    git checkout -b v4.7.10 b3afc4525a507f21e98cc7571ea8c3f28484241c
    wget http://kernel.ubuntu.com/~kernel-ppa/mainline/v4.7.10/0001-base-packaging.patch
    wget http://kernel.ubuntu.com/~kernel-ppa/mainline/v4.7.10/0002-UBUNTU-SAUCE-add-vmlinux.strip-to-BOOT_TARGETS1-on-p.patch
    wget http://kernel.ubuntu.com/~kernel-ppa/mainline/v4.7.10/0003-UBUNTU-SAUCE-tools-hv-lsvmbus-add-manual-page.patch
    wget http://kernel.ubuntu.com/~kernel-ppa/mainline/v4.7.10/0004-UBUNTU-SAUCE-no-up-disable-pie-when-gcc-has-it-enabl.patch
    wget http://kernel.ubuntu.com/~kernel-ppa/mainline/v4.7.10/0005-debian-changelog.patch
    wget http://kernel.ubuntu.com/~kernel-ppa/mainline/v4.7.10/0006-configs-based-on-Ubuntu-4.7.0-0.2.patch
    
    1. Wenden Sie die Patches an:

      git am 000*

    2. Build-Dateien in Debian:

      debian/Regeln sauber

    3. Erstellen Sie die Quell-Debs (ohne Signatur):

      dpkg-buildpackage -us -uc -S

    4. Passen Sie den Wert von „Geändert von:“ in der Datei „.changes“ an Ihr PPA-Uploader-Konto an.

    5. unterschreiben Sie das Paket

      deb-sign linux_4.7.10-040710.201610220847_source.changes

    6. hochladen

      dput ppa linux_4.7.10-040710.201610220847_source.changes

verwandte Informationen