mars 4, 2022

Étapes pour contribuer au noyau Linux

L’un des projets open source les plus importants et les plus rapides, le noyau Linux, est composé d’environ 53 600 fichiers et de près de 20 millions de lignes de code. Avec plus de 15 600 programmeurs qui contribuent au projet dans le monde entier, le noyau Linux suit un modèle de mainteneur pour la collaboration.

Dans cet article, je vais vous fournir une liste de contrôle rapide des étapes à suivre pour effectuer votre première contribution au noyau, et examiner ce que vous devez savoir avant de soumettre un correctif. Pour un aperçu plus approfondi du processus de soumission de votre premier patch, lisez le tutoriel sur le premier patch du noyau de KernelNewbies.

Contribuer au noyau

Étape 1: Préparez votre système.

Les étapes de cet article supposent que vous disposez des outils suivants sur votre système:

  • Éditeur de texte
  • Client de messagerie
  • Système de contrôle de version (par exemple, git)

Étape 2: Téléchargez le référentiel de code du noyau Linux:

git clone -b staging-testing
git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/staging.git

Copiez votre configuration actuelle:

cp /boot/config-`uname -r`* .config

Étape 3: Construire /installer votre noyau.

make -jX
sudo make modules_install install

Étape 4: Créez une branche et passez-y.

git checkout -b first-patch

Étape 5: Mettez à jour votre noyau pour pointer vers la dernière base de code.

git fetch origin
git rebase origin/staging-testing

Étape 6: Modifiez la base de code.

Recompilez à l’aide de la commande make pour vous assurer que votre modification ne produit pas d’erreurs.

Étape 7 : Validez vos modifications et créez un correctif.

git add <file>
git commit -s -v
git format-patch -o /tmp/ HEAD^

Le sujet se compose du chemin d’accès au nom du fichier séparé par deux-points, suivi de ce que fait le patch au temps impératif. Après une ligne vide vient la description du patch et la balise obligatoire signed off et, enfin, un diff de votre patch.

Voici un autre exemple de patch simple:

Ensuite, envoyez le patch par e-mail depuis la ligne de commande (dans ce cas, Mutt):

mutt -H /tmp/0001-<whatever your filename is>

Pour connaître la liste des responsables à qui envoyer le correctif, utilisez le get_maintainer.pl scénario.

Ce qu’il faut savoir avant de soumettre votre premier patch

  • L’arbre de mise en scène de Greg Kroah-Hartman est un bon endroit pour soumettre votre premier patch car il accepte les correctifs faciles des nouveaux contributeurs. Lorsque vous vous familiarisez avec le processus d’envoi de correctifs, vous pouvez envoyer des correctifs spécifiques à un sous-système avec une complexité accrue.
  • Vous pouvez également commencer par corriger les problèmes de style de codage dans le code. Pour en savoir plus, lisez la documentation sur le style de codage du noyau Linux.
  • Le script checkpatch.pl détecte les erreurs de style de codage pour vous. Par exemple, exécutez:
    perl scripts/checkpatch.pl -f drivers/staging/android/* | less
  • Vous pouvez compléter les tâches laissées incomplètes par les développeurs:
    find drivers/staging -name TODO 
  • Coccinelle est un outil utile pour la correspondance de motifs.
  • Lire les archives de mailing du noyau.
  • Passez par linux.connectez-vous à git pour voir les commits des auteurs précédents pour vous inspirer.
  • Remarque : Ne postez pas en haut pour communiquer avec l’examinateur de votre correctif ! Voici un exemple:

    Mauvaise façon:

    Chris,
    Oui programmons la réunion demain, au deuxième étage.
    > Le vendredi 26 avril 2013 à 9h25, Chris a écrit:
    > Hé John, j’avais quelques questions:
    > 1. Voulez-vous planifier la réunion demain?
    > 2. À quel étage du bureau?
    > 3. Quelle heure vous convient?

    (Notez que la dernière question a été involontairement laissée sans réponse dans la réponse.)

    Manière correcte:

    Chris,
    Voir mes réponses ci-dessous…
    > Le vendredi 26 avril 2013 à 9h25, Chris a écrit:
    > Hé John, j’avais quelques questions:
    > 1. Voulez-vous planifier la réunion demain?
    Oui demain c’est bien.
    > 2. À quel étage du bureau?
    Gardons-le au deuxième étage.
    > 3. Quelle heure vous convient?
    09h00 ce serait bien.

    (Toutes les questions ont reçu une réponse, ce qui permet de gagner du temps de lecture.)

  • Le défi Eudyptula est un excellent moyen d’apprendre les bases du noyau.

Pour en savoir plus, lisez le tutoriel sur les premiers correctifs du noyau de KernelNewbies. Après cela, si vous avez encore des questions, posez-les sur la liste de diffusion kernelnewbies ou sur le canal IRC #kernelnewbies.

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée.