MAKE-KPKG(1)

BEZEICHNUNG
make-kpkg - baut Debian-Kernel-Pakete aus den Linux-Kernel-Quellen

ÜBERSICHT
make-kpkg [Optionen] [Ziel [Ziel …]]

BESCHREIBUNG
Diese Handbuchseite erklärt das Debian-Hilfswerkzeug make-kpkg, das benutzt wird, um Kernel-bezogene Debian-Pakete zu erstellen. Dieses Hilfswerkzeug muss von der obersten Ebene des Linux-Kernel-Quellverzeichnisses ausgeführt werden, das vorher konfiguriert wurde (außer, wenn Sie das Ziel »configure« verwenden). Falls kernel-package keine .config-Datei im aktuellen Verzeichnis findet, versucht es normalerweise sehr unnachgiebig eine geeignete zu finden (üblicherweise eine bereits maßgeschneiderte Datei für Debian-Kernel für diese Architektur) und ruft dann make oldconfig auf, damit der Benutzer irgendwelche neuen Fragen beantwortet. Typischerweise führen Sie diesen Befehl als Root oder unter fakeroot aus oder teilen make-kpkg mit, wie es Root wird, beispielsweise so:

make-kpkg --rootcmd fakeroot kernel_image

Die Debian-Paketdatei wird im übergeordneten Verzeichnis der Kernel-Quellverzeichnisses erstellt, wo dieser Befehl ausgeführt wird.

Beachten Sie außerdem, dass einige Versionen von gcc nicht gut mit den Kernel-Quellen zusammenspielen (gcc 2.95 hat Probleme, den Kernel ohne den Schalter »-fno-strict-aliasing« zu kompilieren. Dieses Problem wurde bei aktuellen Kerneln berücksichtigt (die 2.2.- und 2.4.-Serien sind in Ordnung). Sie könnten laut Verfasser das Makefile bearbeiten oder etwas dergleichen tun). Möglicherweise möchten Sie steuern, welche Version von GCC für das Kompilieren von Kerneln benutzt wird, indem Sie die Variablen CC und HOSTCC auf der obersten Ebene des Kernel-Makefiles setzen. Sie können dies einfach durch Setzen der Umgebungsvariable MAKEFLAGS erreichen. Versuchen Sie zum Betrachten Folgendes:

  % KBUILD_VERBOSE=1 MAKEFLAGS="CC=gcc-4.4" make-kpkg configure

KBUILD_VERBOSE zeigt Einzelheiten der Befehle, die ausgeführt werden. (Bitte sehen Sie im Kernel-Makefile der obersten Ebene nach, welche Variablen Sie setzen können.)

WARNUNG: Setzen Sie die Option -j NICHT direkt in MAKEFLAGS, dies soll zur Folge haben, dass das Bauen fehlschlägt. Benutzen Sie CONCURRENCY_LEVEL, wie oben angegeben. Dort gibt es ebenfalls einen -j-Schalter, der benutzt werden kann.

OPTIONEN

--help
    gibt eine Aufrufanleitung aus.

--revision Nummer
    ändert die Versionsnummer der erstellten Pakete auf das Argument Nummer. Dies hat bestimmte Einschränkungen: Die Versionsnummer kann nur alphanumerische Zeichen enthalten, sowie »~«, »+«, ».« (Tilde, Punkt und Plus) und muss eine Ziffer enthalten (Einzelheiten finden Sie im Richtlinienhandbuch). Optional könnten Sie die Überarbeitung mit einer Ziffer gefolgt von einem Doppelpunkt (:) voranstellen. Vorgabe ist 10.00.Benutzerdefiniert, sofern nicht die Umgebungsvariable DEBIAN_REVISION_MANDATORY gesetzt ist. In diesem Fall wird eine Fehlermeldung erzeugt, falls die Überarbeitung nicht auf der Befehlszeile oder in der Konfigurationsdatei gesetzt wurde. Hinweis: Sie könnten sie in der Konfigurationsdatei auf $(version)-<foo> setzen, um die Versionsnummer der Originalautoren Ihrer angepassten Zeichenkette <foo> voranzustellen.

--append-to-version foo

--append_to_version foo
    Dieses Argument (foo) wird an den Wert der Variable EXTRAVERSION angehängt, die im Kernel-Makefile vorkommt. Da EXTRAVERSION ein Bestandteil der Kernel-Version ist, wird sie dem Debian-Paketnamen ebenfalls hinzugefügt und muss als solche der Richtlinie folgen, die den Debian-Paketnamen bestimmt. Dies bedeutet, dass Sie nur kleingeschriebene alphanumerische Zeichen, sowie die Zeichen ~ - + . (Tilde, Bindestrich, Punkt und Plus) enthalten kann. Großgeschriebene Buchstaben sind in den Richtlinien für ein neues Paket nicht erlaubt. Falls die Umgebungsvariable IGNORE_UPPERCASE_VERSION gesetzt ist, soll make-kpkg kleingeschriebene Versionsnummern im Makefile oder in der Datei localversion setzen. Diese Option setzt die Umgebungsvariable APPEND_TO_VERSION außer Kraft.

--added-modules foo

--added_modules foo
    Das Argument sollte eine durch Kommas getrennte Liste zusätzlicher Add-on-Module sein (nicht im Haupt-Kernel-Verzeichnisbaum), die Sie bauen wollen, wenn Sie die »modules-blah«-Ziele aufrufen. Sie können die vollständigen Pfadnamen der Verzeichnisse angeben, in denen die Module liegen oder nur den Modulnamen, falls es in MODULE_LOC, das standardmäßig /usr/src/modules ist, gefunden werden kann. Vorgabe ist, dass alle Module in MODULE_LOC kompiliert werden, wenn die »modules_blah«-Ziele aufgerufen werden.

--arch foo
    Dies ist nützlich, um die Architektur zu setzen, wenn Sie cross-kompilieren. Falls Sie nicht cross-kompilieren, wird die Architektur automatisch festgelegt. Der gleiche Effekt kann durch Setzen der Umgebungsvariable KPKG_ARCH erreicht werden. Der Wert sollte sein, was auch immer DEB_HOST_ARCH_CPU enthält, wenn dpkg-architecture auf dem Zielrechner ausgeführt wird oder es kann eine andere Architektur in einer Multiarch-Zusammenstellung (wie i386/amd64) sein.

--cross-compile foo

--cross_compile foo
    Dies ist nützlich, um die Zielzeichenkette zu setzen, wenn Sie cross-kompilieren. Benutzen Sie das Platzhalterziel »-«, falls Sie für andere Architekturen einer Multiarch-Zusammenstellung, wie i386/amd64, bauen. Der gleiche Effekt kann durch Setzen der Umgebungsvariable erreicht werden. Bitte beachten Sie, dass dies nicht auf irgendeine Art den Compiler setzt, den der Kernelbauprozess verwenden soll; falls der vorgegebene Compiler, den der Bauprozess mitbringt, nicht erwünscht ist, geben Sie explizit den Compiler an, der verwandt werden sollte. CROSS_COMPILE

--subarch foo
    Einige Architekturen (Alpha und m68k) benötigen einen unterschiedlichen Kernel für jede Unterarchitektur. Diese Option stellt eine Möglichkeit bereit, sie als ein Argument für make-kpkg anzugeben. Bitte beachten Sie, dass möglicherweise zusätzliche Unterstützung für Unterarchitekturen in den Kernel-Quellen nötig ist, damit dies tatsächlich klappt. Der gleiche Effekt kann durch Setzen der Umgebungsvariable KPKG_SUBARCH erreicht werden.

--arch-in-name

--arch_in_name
    Diese Option benutzt einen erweiterten Namen für das Kernel-Image-Paket, indem es die Unterarchitektur in den Image-Namen einbettet. Daher könnte jemand ein Skript schreiben, um nacheinander mehrere Unterarchitekturen zu erstellen. Sie können dies ebenfalls durch Setzen der Umgebungsvariable ARCH_IN_NAME erreichen. Bitte beachten Sie, dass nur das Paket Name betroffen ist, keine Modulspeicherorte etc.

--pgpsign Name
    setzt die Zeichenkette, die zum Signieren der Datei changes für sämtliche externen Module in /usr/src/modules/ unter Benutzung von PGP verwandt wird. Diese Option wird die integrierte Standardoption und die Site-weiten Anpassungen, die in der Datei /etc/kernel-pkg.conf oder ~/.kernel-pkg.conf. gespeichert sind, außer Kraft setzen.

--config Ziel
    ändert den Typ von configure, das vom Standard-oldconfig erledigt wurde. Ziel muss entweder oldconfig, config, menuconfig, gconfig, xconfig, randconfig, defconfig, allmodconfig, allyesconfig, allnoconfig, old, menu, g oder x sein.

    Beachten Sie jedoch, dass make-kpkg die Konfigurationsdatei beim Starten nach irgendwelchen Optionen durchsucht, insbesondere die Tatsache, ob Module aktiviert sind oder nicht, weswegen das Umschalten während der verzögerten Konfiguration einen Fehler zur Folge hat. Erstellen Sie, falls nötig, die Konfigurationsdatei so, dass sie Ihren Wünschen nahe kommt, bevor Sie make-kpkg mit diesem Schalter aufrufen.

--targets
    gibt eine Liste bekannter Ziele aus. Lesen Sie den nachfolgenden Abschnitt Ziele.

--noexec
    übergibt eine -n-Option an den make-Prozess, so dass Befehle bloß auf dem Bildschirm ausgegeben, aber nicht tatsächlich ausgeführt werden. Dies ist sehr nützlich bei der Fehlersuche.

--verbose
    Dies ruft make mit der Option -V=1 auf, was die Make-Befehle der obersten Stufe aufruft. Dies ist außerdem nützlich, um zu sehen, was geschieht.

--initrd
    Falls make-kpkg ein kernel-image-Paket erzeugt, übermittelt dies den Hook-Skripten, die von den Betreuerskripten vor der Installation ausgeführt werden, einzuplanen, dass dieses Image ein initrd benötigt und dass das initrd-Erzeugungs-Hook-Skript nicht anfangs kurz laufen sollte. Ohne diese Option werden die mit kernel-package gebündelten initramfs-Hook-Skripte nicht tätig. Der gleiche Effekt kann durch Setzen der Umgebungsvariable INITRD auf irgendeinen nicht leeren Wert erreicht werden. Bitte beachten Sie, dass, falls keine Hook-Skripte in /etc/kernel sind oder dem Hook-Skript-Parameter von /etc/kernel-img.conf hinzugefügt werden, kein Intitrd erzeugt wird (was in den Beispielskripten zusammengefasst wurde, sind nur Beispiele – es ist nötig, dass der Anwender eingreift, bevor etwas geschieht).

--jobs Nummer

-j Nummer
    setzt die Umgebungsvariable CONCURRENCY_LEVEL auf Nummer.

--overlay-dir /Pfad/zum/Verzeichnis
    Das angegebene Verzeichnis sollte bestimmte Dateien enthalten, die als Vorbereitung des Baus von Debian-Paketen in das ./debian-Verzeichnis der Kernel-Quellen platziert werden. Die Dateien werden alles in /usr/share/kernel-package ersetzen, das normalerweise dort abgelegt würde und es liegt im Ermessen des Benutzers, sicherzustellen, dass die Dateien im überlagernden Verzeichnis kompatibel mit make-kpkg sind. Falls Sie make-kpkg mit einer überlagernden Datei zerstören, sollten Sie die Teile aufbewahren. Der gleiche Effekt kann durch Setzen der Umgebungsvariable KPKG_OVERLAY_DIR erzielt werden.

    Bitte beachten Sie, dass overlay-dir/Control und overlay-dir/changelog ungewöhnlich sind und bei diesen Dateien Variablenersetzung durchgeführt wird. Benutzen Sie /usr/share/kernel-package/Control- und /usr/share/kernel-package/changelog-Dateien als Schablone.

    Falls eine ausführbare overlay-dir/post-install-Datei (oder ein ausführbares Skript) existiert, soll es sofort nach dem Füllen von ./debian ablaufen. Dies kann zum Beispiel benutzt werden, um Dateien zu löschen, die der Anwender nicht mag, oder andere Aktionen als einfaches Ersetzen durchzuführen.

--zimage
    erstellt einen zImage-Kernel statt eines bzImage-Kernels (die Vorgabe). Nützlich für Leute, die Probleme mit bzImage-Kerneln haben.

--bzimage
    erstellt einen bzImage-Kernel. Nützlich für Leute, die einen bzImage-Kernel auf Sites haben möchten, auf denen die Vorabe ein zImage-Kernel ist.

--rootcmd foo
    der Befehl, der ein Mittel zum Erlangen von Superuser-Rechten bereitstellt (zum Beispiel »sudo« oder »fakeroot«), wie es die Option -r von dpkg-buildpackage erfordert. Diese Option funktioniert für drei der Ziele nicht, nämlich für binary, binary-indep und binary-arch. Für diese Ziele muss der ganze Befehl als (Fake-)Root ausgeführt werden.

--stem foo
    ruft die Pakete foo-* anstelle von kernel-* auf. Dies ist nützlich beim Übergang vom Aufruf der kernel-*-Pakete zu den linux-*-Paketen in der Vorbereitung für nicht Linux-Kernel in der Distribution. Vorgabe ist Linux. Die Hauptlinie darf, da sie der einleitende Teil des Paketnamens ist, nur aus kleingeschriebenen Zeichen (»a-z«), Ziffern (»0-9«), Plus (»+«), Minus (»-«), und Punkten (».«) bestehen. Sie muss mindestens zwei Zeichen lang sein und mit einem alphanumerischen Zeichen beginnen.

--us
    Diese Option wird an dpkg-buildpackage übergeben und weist das Paket an, die Quelle nicht zu signieren. Dies ist nur für das Ziel »buildpackage« maßgeblich.

--uc
    Diese Option wird an dpkg-buildpackage übergeben und weist das Paket an, das Änderungsprotokoll nicht zu signieren. Dies ist nur für das Ziel »buildpackage« maßgeblich.

Die Optionen könnten auf die kleinste eindeutige Zeichenkette verkürzt und entweder mit einem Präfix »-« oder »--« eingegeben werden. Sie können ein Leerzeichen oder ein »=«-Symbol zwischen einer Option und einem Wert verwenden. Sie können auch die Form Option=Wert benutzen; Einzelheiten, wie diese oder abweichende Formen unterstützt werden, finden Sie in der Handbuchseite Getopt::Long(3perl).

CONCURRENCY_LEVEL
    Diese Umgebungsvariable setzt, falls sie definiert ist, die Nebenläufigkeitsstufe von »make«, das benutzt wird, um den Kernel und die Module zu kompilieren, die mit -j-Schaltern zur Untererstellung im Ziel build von make-kpkg gesetzt sind. Sie sollte, wenn sie benutzt wird, eine (kleine) Ganzzahl sein. Sie können die aktuelle CPU-Anzahl mit dem folgenden Befehl abfragen:

    grep -c '^processor' /proc/cpuinfo

    WARNUNG: Setzen Sie die Option -j NICHT direkt in MAKEFLAGS, dies soll zur Folge haben, dass das Bauen fehlschlägt. Es ist möglich, -j als ein »make-kpkg«-Argument zu setzen.

ZIELE

clean
    säubert das Kernel-Quellverzeichnis von allen durch das Ziel build erstellten Dateien und führt ein »make distclean« aus. (Einzelheiten finden Sie im Linux-Kernel-Makefile.) Bitte beachten Sie, dass die Datei include/linux/autoconf.h nicht aufbewahrt wird, obwohl die Liste der aktuellen Kernel-Konfiguration die Datei .config enthält. Dieses Ziel sollte nicht mit anderen Zielen kombiniert werden, da make-kpkg alle Daten liest, bevor es irgendein Ziel ausführt, weswegen nachfolgende Ziele mit alten Daten ausgeführt werden, die Sie wahrscheinlich nicht wollen.

buildpackage
    Dieses Ziel führt die Ziele clean und binary aus und erzeugt unter Benutzung von dpkg-buildpackage das vollständige Paket.

binary
    Dieses Ziel erstellt alle Debian-Kernel-Pakete, indem es die Ziele binary-indep und binary-arch ausführt. Dies erfordert jedoch, dass make-kpkg als Root (oder Fakeroot) ausgeführt wird, da --rootcmd nicht funktionieren wird.

binary-indep
    Dieses Ziel erstellt die architekturunabhängigen Pakete, indem es die Ziele kernel_source, kernel_manual und kernel_doc ausführt. Dies erfordert jedoch ebenfalls, dass make-kpkg als Root (oder Fakeroot) ausgeführt wird, da --rootcmd nicht funktionieren wird.

binary-arch
    Dieses Ziel erstellt die architekturabhängigen Pakete, indem es die Ziele kernel_headers und kernel_image ausführt. Dies erfordert jedoch, dass make-kpkg als Root (oder Fakeroot) ausgeführt wird, da --rootcmd nicht funktionieren wird.

kernel_source
    Dieses Ziel erstellt ein an Debian angepasstes Paket der Linux-Kernel-Quellen. Falls die Umgebungsvariable SOURCE_CLEAN_HOOK auf eine ausführbare Datei zeigt, dann soll diese ausführbare Datei von dem obersten temporären Verzeichnis der Kernel-Quellen (./debian/tmp-source/usr/src/kernel-source-X.X.XX) ausgeführt werden, kurz bevor es paketiert wird, weswegen Leute nach Belieben irgendwelche Aktionen durchführen könnten (Architekturverzeichnisbäume entfernen, Versionskontrollverzeichnisse reduzieren, find . -type d -name CVS -prune -exec rm -rf {} ; etc). Dies hat keine Auswirkungen auf etwas anderes als die Kernel-Quellen, die gepackt werden – falls das Skript auf dem aktuellen Verzeichnis und dessen Unterverzeichnissen arbeitet, sollte der Original-Quellverzeichnisbaum intakt bleiben. Die Umgebungsvariablen HEADER_CLEAN_HOOK und DOC_CLEAN_HOOK sind ähnlich. Sie sollten auf ausführbare Dateien zeigen, dann soll diese ausführbare Datei von dem obersten temporären Verzeichnis der Kernel-Header und Dokumentation ausgeführt werden, kurz vor dem Paketieren, beziehungsweise bevor Leute nach Belieben irgendwelche Aktionen durchführen könnten. Dies hat ebenfalls keine Auswirkungen auf etwas anderes, als die Kernel-Quellen, die gepackt werden.

kernel_debug
    Dieses Ziel erstellt ein Debian-Paket, das Fehlersuchsymbole für die im entsprechenden Image-Paket enthaltenen Module beinhaltet. Die zugrundeliegende Idee hierbei ist, den Platz in /lib/modules/<kver> unter Kontrolle zu halten, da dies eine Root-Partition mit Speicherbeschränkungen sein könnte.

kernel_headers
    Dieses Ziel erstellt ein Debian-Paket, das die im Kernel enthaltenen Header-Dateien beinhaltet.

kernel_manual
    Dieses Ziel erstellt ein Debian-Paket, das die im Linux-Kernel enthaltenen Handbuchseiten aus Abschnitt neun beinhaltet. Bitte beachten Sie, dass dies kein tatsächlich unabhängiges Ziel ist; dies aufzurufen soll auch das Ziel kernel_doc aufrufen und gleichzeitig ein kernel-doc-Paket erstellen.

kernel_doc
    Dieses Ziel erstellt ein Debian-Paket, das die im Linux-Kernel enthaltene Dokumentation beinhaltet. Dies kann unabhängig vom Ziel kernel_manual aufgerufen werden, aber nicht andersherum.

kernel_image
    Dieses Ziel erstellt ein Debian-Paket des Linux-Kernel-Quell-Images und den in der Kernel-Konfigurationsdatei .config konfigurierten Modulen. Falls es im Kernel-Quell-Verzeichnis keine .config-Datei gibt, wird eine Standardkonfiguration bereitgestellt, die der ähnelt, die zum Erstellen der Debian-Boot-Disketten benutzt wird.

    Falls die Datei ./debian/post-install existiert und ausführbar ist, wird sie, kurz bevor das Kernel-Image-Paket erstellt wird, ausgeführt. Beachten Sie außerdem, dass, falls irgendwelche Skripte im Verzeichnis ./debian/image.d/ liegen, run-parts für dieses Verzeichnis aufgerufen werden soll, bevor das Kernel-Image-Paket gebaut wird. Der Speicherort des Wurzelverzeichnisses des zu bauenden Image-Pakets soll in der Umgebungsvariable IMAGE_TOP übergeben werden und die Kernel-Version wird durch die Umgebungsvariable version für all diese Skripte übergeben.

    Bitte lesen Sie die Dokumentation über Hooks in kernel-img.conf(5). Diese Hooks sind Variablen, die der lokale Systemadministrator auf Skripte zeigen lassen kann, die beim Installieren oder Entfernen von Kernel-Images der Grub-Menüliste eine Zeile hinzufügen oder entfernen. Ein Beispielskript, um einer Grub-Menüdatei Zeilen hinzuzufügen ist im Verzeichnis /usr/share/doc/kernel-package/ enthalten.

    Abgesehen von Hook-Variablen, die der lokale Administrator setzen könnte, gibt es eine Zusammenstellung von Verzeichnissen, in denen Pakete oder der lokale Administrator die Skript-Dateien hinlegen können. Diese Verzeichnisse sind /etc/kernel/preinst.d/, /etc/kernel/postinst.d/, /etc/kernel/prerm.d/, /etc/kernel/postrm.d/, /etc/kernel/preinst.d/<VERSION>/, /etc/kernel/postinst.d/<VERSION>/, /etc/kernel/prerm.d/<VERSION>/ und /etc/kernel/postrm.d/<VERSION>/. Falls sie existieren, soll das Kernel-Image-Paket ein run-parts-Programm für das Verzeichnis ausführen (einschließlich dem, das versionsverwaltet ist), dessen installierte oder entfernte Version über ein Argument in der entsprechenden Phase der Installation oder des Entfernens angegeben wurde. Bevor diese Skripte aufgerufen werden, soll die Umgebungsvariable STEM auf den Wert des Arguments --stem (oder den Standardwert, linux) gesetzt werden und die Variable KERNEL_PACKAGE_VERSION soll auf die Version von kernel-package gesetzt werden, womit dieses Paket erzeugt wurde. Diese Skripte sollen mit zwei Argumenten aufgerufen werden. Das erste ist die Version des Kernel-Images und das zweite ist der Speicherort des Kernel-Images selbst. Da vor dem Aufruf des Skripts Debconf benutzt wird, sollte das Skript keine Diagnosenachrichten auf die Standardausgabe ausgeben – solange »postinst« db_stop aufruft, stellt Debconf die Standardausgabe nicht wieder her, daher verschwinden Nachrichten an die Standardausgabe.

    Bei der Installation bietet es auch an, den Linux-Loader LILO (oder Alternativen wie loadlin, SILO, QUIK, VMELILO, ZIPL, yaboot, PALO oder GRUB) auszuführen, und eine Konfigurationsdatei für unterstützte Boot-Loader zu erstellen, falls nötig. Zu diesem Zeitpunkt bietet es auch an, den neuen Kernel auf einer Diskette abzulegen und die Diskette zu formatieren, wenn dies erforderlich ist. Bei Löschungen prüft das Paket die Version des laufenden Kernels und verweigert einen laufenden Kernel zu löschen. grub misst dem eine besondere Bedeutung bei, da Grub nicht nach der Installation eines Kernel-Images erneut ausgeführt werden braucht, obwohl eine automatische Änderung der Menüliste bei der Installation oder dem Entfernen von Kernel-Image Paketen angenehm wäre.

build
    Dieses Ziel, das vom vorhergehenden Ziel kernel_image benutzt wird, kompiliert das Kernel-Image.

modules
    Dieses Ziel ermöglicht es Ihnen, alle Add-On-Module und Pakete zu bauen, die stark von der genauen Kernel-Version abhängen, für das sie zur gleichen Zeit wie Ihr Kernel-Image gebaut wurden. Dieses Ziel erwartet, die Module oder Pakete unter /usr/src/modules und für all diese Verzeichnisse Änderungen an MODULE_LOC/x (Vorgabe für MODULE_LOC ist /usr/src/modules) zu finden und führt die Regel kdist in der lokalen debian.rules-Datei aus. Dieses Ziel sollte das Debian-Modulpaket erstellen, außerdem eine komprimierte Tar-Datei und eine komprimierte Diff-Datei mit md5sums, die unter Benutzung von dpkg-genchanges in in einer »changes«-Datei aufgezeichnet wurden. Die Datei ist durch die gleiche Identität signiert, die zum Signieren der Kernel-Pakete benutzt würde. Diese Option wird von Paketbetreuern verwandt, die das Paket in die Debian-Archive hochladen.

modules_config
    Dieses Ziel ermöglicht es Ihnen, alle Pakete unter MODULE_LOC zu konfigurieren, die /usr/src/modules als Standard haben. Dies ist nützlich, falls Sie manuell einige Gesichtspunkte der Konfiguration ändern möchten oder falls Sie die Add-On-Module manuell kompilieren wollen. Dies sollte nicht aufgerufen werden, es sei denn, Sie haben bereits ein ./debian-Verzeichnis.

modules_image
    Dieses Ziel ermöglicht es Ihnen, alle Pakete unter MODULE_LOC zu bauen, die /usr/src/modules als Standard haben, aber es erstellt nicht die Quell- oder Diff-Dateien und erzeugt und signiert nicht die Datei »changes«. Dies ist die einzige modulbezogene Option, falls Sie nur die Add-On-Modul-Image-Dateien auf einem oder mehreren Rechnern kompilieren möchten. Es wird im Allgemeinen in Verbindung mit kernel_image aufgerufen, insbesondere falls außerdem die Option append_to_version (verhindert störende Warnungen) benutzt wird. Dies sollte nicht aufgerufen werden, es sei denn, Sie haben bereits ein ./debian-Verzeichnis.

modules_clean
    Dieses Ziel ermöglicht es Ihnen, alle Pakete unter MODULE_LOC zu bereinigen, die /usr/src/modules als Standard haben. Dies sollte alles sein, was nötig ist, um die Auswirkungen auf irgendwelche anderen »modules_«-Ziele rückgängig zu machen. Dies sollte nicht aufgerufen werden, es sei denn, Sie haben bereits ein ./debian-Verzeichnis.

configure
    Dieses Ziel führt am Anfang »configure« aus (tatsächlich config_target, gesetzt durch --config, dessen Vorgabe oldconfig ist), daher können Sie durch make config im Kernel-Quellverzeichnis erzeugte Dateien bearbeiten ohne dass sie später durch make-kpkg eingestampft werden.

debian
    Dieses Ziel erstellt ein ./debian-Verzeichnis und patcht wahlweise die Quelle. Dieses Ziel wird durch das Ziel configure aufgerufen. Sie können dieses Ziel benutzen, damit Sie über gepatchte Quellen verfügen und dann manuell den Konfigurationsschritt ausführen, um die Konfigurationsdatei mit irgendwelchen neuen Konfigurationsoptionen zu aktualisieren, die durch die Patches eingeführt wurden.

libc-kheaders
    Dies ist ein Spezialziel für den Paketbetreuer von libc-dev, der es zum Erstellen des von libc benötigten Header-Pakets benutzen kann. Bitte beachten Sie, dass es gefährlich ist, ein libc-kheaders-Paket zu erstellen, das sich von der damit kompilierten libc des Headers unterscheidet; es ist bekannt, dass es Systeme auf raffierte Weise zerstört. Einzelheiten finden Sie in /usr/share/kernel-package/README.headers. Das Erstellen und Installieren eines selbst erstellten libc-kheaders-Pakets könnte Ihr System zerstören, es sei denn, Sie wissen, was Sie tun. Sie wurden gewarnt.

UMGEBUNGSVARIABLEN
KPKG_DEBUG veranlasst make-kpkg, falls es gesetzt wurde, Fehlersuchmeldungen über einige intern ausgeführte Shell-Funktionen auszuspucken. Dies ist wahrscheinlich nicht für jedermann von Interesse, der keine Fehlersuche für make-kpkg durchführt. Die folgenden (oben dokumentierten) Variablen beeinflussen ebenfalls make-kpkg: DEBIAN_REVISION_MANDATORY, APPEND_TO_VERSION, VERSION_H_OK, KPKG_ARCH, CROSS_COMPILE, KPKG_SUBARCH, KPKG_OVERLAY_DIR, ARCH_IN_NAME, INITRD, SOURCE_CLEAN_HOOK, MODULE_LOC, CONCURRENCY_LEVEL und IGNORE_UPPERCASE_VERSION.

DATEIEN
Abseits der Laufzeitoptionen sucht außerdem die von make-kpkg ausgeführte Datei debian.rules nach einer benutzerspezifischen Konfigurationsdatei ~/.kernel-pkg.conf. Schlägt dies fehl, sucht sie nach den systemweiten Vorgaben in der Datei /etc/kernel-pkg.conf. Die Standardkonfiguration ermöglicht dort Site-weit den vollständigen Namen und die E-Mail-Adresse der für die Betreuung der Kernel-Pakete zuständigen Person auf der Site außer Kraft zu setzen, aber die Datei /etc/kernel-pkg.conf (oder ~/.kernel-pkg.conf) ist tatsächlich ein Makefile-Schnipsel. Jede zulässige make-Richtlinie könnte darin enthalten sein. Beachten Sie: Bei dieser Datei ist Vorsicht angebracht, da Sie durch geeignetes Bearbeiten dieser Datei die Ausführung von make vollständig ändern können. Eine Liste bekannter Probleme beim Kompilieren von Kernel-Images finden Sie in /usr/share/doc/kernel-package/Problems.gz. Ausführlichere Anleitungen wie Dokumentation ist außerdem in /usr/share/doc/kernel-package/README.gz verfügbar und es wird empfohlen, dies vor dem Gebrauch dieses Hilfswerkzeugs zu lesen.

SIEHE AUCH
dpkg-deb(1), dpkg-source(1), make(1), Getopt::Long(3perl), kernel-img.conf(5), kernel-pkg.conf(5), The Programmers manual, The GNU Make manual und die ausführliche Dokumentation im Verzeichnis /usr/share/doc/kernel-package

AUTOR
Diese Handbuchseite wurde von Manoj Srivastava <srivasta@debian.org> für das Debian-GNU/Linux-System geschrieben.