kernel-pkg.conf(5) Fichier de configuration pour make-kpkg

SYNOPSIS

/etc/kernel-pkg.conf ou ~/.kernel-pkg.conf

DESCRIPTION

Les fichiers /etc/kernel-pkg.conf ou ~/.kernel-pkg.conf sont en fait des morceaux de code de type Makefile inclus dans le processus de construction du paquet du noyau. Vous pourrez inclure de la sorte n'importe quelle directive de Makefile dans ce fichier (vérifiez simplement que vous savez vraiment ce que vous faites). S'il existe un fichier de configuration utilisateur ~/.kernel-pkg.conf, il sera prioritaire sur le fichier de configuration du système /etc/kernel-pkg.conf.

Toutes les variables ont des valeurs raisonnables par défaut et peuvent être outrepassées ponctuellement ou sur la base de choix de l'utilisateur grâce aux variables d'environnement. Certaines de ces variables peuvent de plus être modifiées grâce à des options de make-kpkg.

Les variables actuellement modifiables par l'utilisateur sont les suivantes :

maintainer
Responsable local des paquets kernel-* (image, entêtes, documentations, etc.) Défini lors de l'installation du paquet par le script de postinstallation. Il est possible de l'outrepasser grâce à la variable d'environnement KPKG_MAINTAINER. Veuillez noter que tout signe de type « ' » doit être protégé, comme dans maintainer = John O'\''Brien. Oui, ce n'est pas terrible, mais ça marche.
email
L'adresse électronique de cette personne. Définie lors de l'installation du paquet par le script de postinstallation. Il est possible de l'outrepasser grâce à la variable d'environnement KPKG_EMAIL.
pgp
La clef d'identification à utiliser pour signer le paquet. En général fournie à dpkg-buildpackage grâce à l'option -k, ainsi qu'aux modules de tierces parties par la variable d'environnement KMAINT, si ces modules séparés (tels que pcmcia, etc.) sont construits dans le $MODULE_PATH. Il est possible de l'outrepasser grâce à la variable d'environnement PGP_SIGNATURE, et il peut être (à nouveau) outrepassé par l'option --pgpsign de make-kpkg. Valeur par défaut : maintainer. (Optionnel)
debian
Version des paquets du noyau, incluant aussi les versions officielles (upstream) et les modifications de Debian. Modifiable par la variable d’environnement DEBIAN_REVISION, puis (encore) modifiable par l’option --revision de make-kpkg. Réglée par défaut à <VERSION>-10.0.0.Custom. (Optionnel)
debian_revision_mandatory
Habituellement non définie. Si elle ou la variable d'environnement DEBIAN_REVISION_MANDATORY sont définies, alors l'absence de numéro de révision Debian entraînera une erreur (et make-kpkg ne fournira pas la valeur par défaut « 10.0.0.Custom »).
kimage
Type d'image du noyau (zImage ou bzImage par exemple). Il est possible de l'outrepasser grâce à la variable d'environnement IMAGE_TYPE, et il est possible de l'outrepasser (de nouveau) grâce aux options --zimage ou --bzimage de make-kpkg. Valeur par défaut : bzImage. (Optionnel)
config_target
Choix du type de configuration à exécuter. Par défaut, c'est « oldconfig », ce qui est pratique pour les lancements non interactifs (ou aux interactions réduites au minimum). (La variable d'environnement CONFIG_TARGET outrepasse ce choix). Si la valeur de config_target est inconnue, elle est alors réinitialisée à oldconfig.
use_saved_config
Variable réservée seulement aux experts. Si elle est réglée à « NO » (la variable d'environnement USE_SAVED_CONFIG outrepasse cela), le fichier .config.save du répertoire au sommet de l'arborescence est ignoré.
root_cmd
C'est une variable dont le but est d'être transmise à dpkg-buildpackage dans la cible buildpackage. Elle doit fournir un moyen d'obtenir les droits d'accès du superutilisateur (« sudo » ou « fakeroot » par exemple), un peu à la façon de l'option -r de dpkg-buildpackage. La variable d'environnement ROOT_CMD a priorité sur celle-ci. La variable d'environnement UNSIGN_SOURCE fournit à cette commande l'option qui force dpkg-buildpackage à ne pas signer la source, et de la même façon, la variable d'environnement UNSIGN_CHANGELOG fournit à cette commande l'option qui force dpkg-buildpackage à ne pas signer le changelog. Là encore, cette variable n'est utile que pour la cible buildpackage. Définissez la variable d'environnement ROOT_CMD si vous voulez juste construire l'image du noyau, par exemple.
delete_build_link
Si elle est définie à « YES », supprime le lien symbolique /lib/modules/$VERSION/build pointant sur le paquet .deb. La variable d'environnement DELETE_BUILD_LINK a priorité sur cette option. Par défaut, elle n'est pas définie. Notez qu'elle est sensible à la casse, yes ne fonctionnant pas.
do_clean
Si elle est définie à « YES », un make clean sera lancé sur l'arborescence des sources du noyau après la construction du paquet de l'image du noyau. La variable d'environnement CLEAN_SOURCE a priorité sur cette option. Par défaut, elle n'est pas définie. Notez qu'elle est sensible à la casse, yes ne fonctionnant pas.
install_vmlinux
Si elle est définie à « YES », l'image non compressée du noyau au format ELF sera installée en plus de l'image compressé (vmlinuz). Par défaut, elle n'est pas définie. Notez qu'elle est sensible à la casse, yes ne fonctionnant pas.
image_clean_hook
Lorsqu'elle correspond à un programme, celui-ci est alors exécuté sur la racine (temporaire) de l'arborescence du noyau avant l'empaquetage des sources. Cela n'a aucun effet sur quoi que ce soit d'autre que les sources en cours d'empaquetage. Si le script agit sur le répertoire actuel et ses sous-répertoires, l'arborescence originale des sources demeure inchangée. Utile pour faciliter le modelage de l'image du noyau en cours d'empaquetage.
source_clean_hook
Lorsqu'elle correspond à un programme, celui-ci est alors lancé sur la racine des répertoires des en-têtes du noyau avant leur empaquetage, ./debian/tmp-source/usr/src/kernel-source-X.X.XX. Cela n'a aucun effet sur quoi que ce soit d'autre que les sources en cours d'empaquetage. Si le script agit sur le répertoire actuel et ses sous-répertoires, l'arborescence originale des sources demeure inchangée. Utile pour faciliter le modelage des sources du noyau en cours d'empaquetage (en supprimant par exemple les répertoires de contrôle de version, ou en se débarrassant des architectures non désirées).
header_clean_hook
Lorsqu'elle correspond à un programme, celui-ci est alors lancé sur la racine des répertoires des en-têtes du noyau avant leur empaquetage. Cela n'a aucun effet sur quoi que ce soit d'autre que les sources en cours d'empaquetage. Si le script agit sur le répertoire actuel et ses sous-répertoires, l'arborescence originale des sources demeure inchangée. Utile pour faciliter la cure d'amaigrissement des en-têtes du noyau en cours d'empaquetage (en supprimant par exemple les répertoires de contrôle de version, ou en se débarrassant des architectures non désirées).
doc_clean_hook
Lorsqu'elle correspond à un programme, celui-ci est alors exécuté sur la racine de l'arborescence de la documentation avant son empaquetage. Cela n'a aucun effet sur quoi que soit d'autre que la documentation en cours d'empaquetage. Si le script agit sur le répertoire actuel et ses sous-répertoires, l'arborescence originale demeure inchangée. Utile pour faciliter le modelage de la documentation du noyau en cours d'empaquetage (en supprimant par exemple les répertoires de contrôle de version, ou en se débarrassant des architectures non désirées).
extra_docs
Cette variable pourra contenir le chemin vers toute documentation supplémentaire qui sera alors installée dans le répertoire /usr/share/doc/kernel-image-X.X.XX/. Il n'y a pas de détection de conflit de noms, et les fichiers ne sont pas compressés. De ce fait, si vous voulez que ces fichiers soient compressés, compressez-les et indiquez alors le chemin vers le fichier compressé. La variable d'environnement EXTRA_DOCS a priorité sur cette option, et indiquera certainement la manière de spécifier la documentation supplémentaire.
kpkg_follow_symlinks_in_src
Cette option est particulièrement utile à ceux qui se servent d'un ensemble de liens symboliques pour compiler leurs noyaux. Avec cette option, les paquets kernel-source et kernel-header ne seront pas une simple collection de liens morts, car les liens symboliques auront été suivis. Notez bien que tout lien symbolique présent dans les sources du noyau sera résolu. La variable d'environnement KPKG_FOLLOW_SYMLINKS_IN_SRC a priorité sur cette option. Par défaut, elle est n'est pas définie.
make_libc_headers
Variable pour le responsable de la libc6 qui, lorsqu'il compile la libc6, empaquette aussi les en-têtes correspondants. N'Y TOUCHEZ PAS à moins de savoir ce que vous faites, car une différence entre les en-têtes que vous empaquetez et la libc6 peut vraiment déclencher de subtiles instabilités dans tous les codes compilés sur votre machine. Vous êtes prévenu. La variable d'environnement MAKE_LIBC_HEADERS a priorité sur cette option. Par défaut, elle n'est pas définie.
CONCURRENCY_LEVEL
Si elle est définie, cette variable règle le nombre de processus concurrents qu'utilisera make pour compiler le noyau et les modules, grâce à l'option -j de la commande make lancée par la cible build de make-kpkg. Doit être, si elle est définie, un (petit) entier.
ARCH_IN_NAME
Si elle est définie, cette variable force make-kpkg à utiliser un nom rallongé pour le paquet de l'image du noyau, en intégrant la sous-architecture dans le nom de l'image ; ainsi, on peut écrire des scripts pour créer de multiples sous-architectures, l'une après l'autre. Notez bien que seul le nom du paquet est changé, pas l'emplacement des modules, etc.
CONFDIR
Cette variable, qu'elle soit dans d'environnement ou dans le fichier de configuration, pourra pointer sur un répertoire contenant les fichiers .config spécifiques aux différentes architectures (consultez /usr/share/kernel-package/Config pour voir des exemples). Pratique pour ceux qui ont besoin de compiler pour plusieurs architectures. Pointe par défaut sur /usr/share/kernel-package/Config.
IMAGEDIR
Si vous voulez que l'image soit stockée ailleurs que dans /boot, définissez le répertoire de destination dans cette variable. Cela pourra être utile aux utilisateurs de loadlin. Pointe par défaut sur /boot.
MODULE_LOC
Réglez cette variable, soit dans votre environnement, soit dans le fichier de configuration, afin qu'elle pointe sur l'endroit où sont situés les modules additionnels. Pointe par défaut sur /usr/src/modules.

Le contenu d'une variable est définie de la façon suivante :
a)
Les valeurs par défaut sont présentes dans le fichier « rules ». Ces valeurs sont utilisées si aucun réglage n'est fait.
b)
Les variables peuvent être réglées dans le fichier de configuration /etc/kernel-pkg.conf. Ces valeurs ont priorité sur les valeurs par défaut.
c)
Les variables peuvent aussi être définies en donnant une valeur à la variable d'environnement correspondante. Ces valeurs ont priorité sur le fichier de configuration et sur les valeurs par défaut.
d)
Par l'utilisation des options de make-kpkg ou, lorsqu'on utilise directement les fichiers « rules », sur la ligne de commande.
# xxx/rules DEBIAN_REVISION=2.0a kernel_image
Cette commande a priorité sur toutes les méthodes décrites ci-dessus.

FICHIERS

Le fichier ici décrit est /etc/kernel-pkg.conf ou ~/.kernel-pkg.conf.

BOGUES

Il n'y a pas d'erreur. Toute ressemblance avec un bogue est du délire. Vraiment.

AUTEUR

Cette page a été écrite par Manoj Srivastava, <[email protected]>, pour le système Debian GNU/Linux.