GNU/Linux >> Tutoriels Linux >  >> Linux

Une liste de contrôle pour soumettre votre premier correctif de 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 contribuant au projet dans le monde entier, le noyau Linux suit un modèle de collaboration de mainteneur.

Dans cet article, je fournirai une liste de contrôle rapide des étapes à suivre pour apporter votre première contribution au noyau et examinerai ce que vous devez savoir avant de soumettre un correctif. Pour un examen plus approfondi du processus de soumission de votre premier correctif, lisez le didacticiel KernelNewbies First Kernel Patch.

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 :Construisez/installez votre noyau.

make -jX 
sudo make modules_install install

Étape 4 :Créez une branche et basculez vers celle-ci.

git checkout -b first-patch

Étape 5 :Mettez à jour votre noyau pour qu'il pointe vers la dernière base de code.

git fetch origin
git rebase origin/staging-testing

Étape 6 :Apportez une modification à la base de code.

Recompiler en utilisant 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 de fichier séparé par deux-points, suivi de ce que fait le patch à l'impératif. Après une ligne vide vient la description du patch et la balise de signature obligatoire et, enfin, un diff de votre patch.

Voici un autre exemple de patch simple :

Ensuite, envoyez le correctif par e-mail à partir de la ligne de commande (dans ce cas, Mutt) :

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

Plus de ressources Linux

  • Aide-mémoire des commandes Linux
  • Aide-mémoire des commandes Linux avancées
  • Cours en ligne gratuit :Présentation technique de RHEL
  • Aide-mémoire sur le réseau Linux
  • Aide-mémoire SELinux
  • Aide-mémoire sur les commandes courantes de Linux
  • Que sont les conteneurs Linux ?
  • Nos derniers articles Linux

Pour connaître la liste des mainteneurs à qui envoyer le patch, utilisez le script get_maintainer.pl.

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 correctif car il accepte les correctifs faciles de nouveaux contributeurs. Lorsque vous vous serez familiarisé avec le processus d'envoi de correctifs, vous pourrez 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 TODO laissés incomplets par les développeurs :
    find drivers/staging -name TODO 
  • Coccinelle est un outil utile pour la correspondance de modèles.
  • Lire les archives de diffusion du noyau.
  • Parcourez le journal linux.git pour voir les commits des auteurs précédents pour vous inspirer.
  • Remarque :Ne postez pas en haut pour communiquer avec le réviseur de votre correctif ! Voici un exemple :

    Mauvais sens :

    Chris,

    Oui, programmons la réunion demain, au deuxième étage.

    > Le vendredi 26 avril 2013 à 9h25, Chris a écrit :

    > Hey John, j'avais quelques questions :

    > 1. Voulez-vous programmer 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.)

    Bonne manière :

    Chris,

    Voir mes réponses ci-dessous...

    > Le vendredi 26 avril 2013 à 9h25, Chris a écrit :

    > Salut John, j'avais quelques questions :

    > 1. Voulez-vous programmer la réunion demain ?

    Oui, demain, ça va.

    > 2. À quel étage dans le bureau ?

    Gardons-le au deuxième étage.

    > 3. Quelle heure vous convient ?

    09h00 serait bien.

    (Toutes les questions ont été répondues, 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 KernelNewbies First Kernel Patch. Après cela, si vous avez encore des questions, posez-les sur la liste de diffusion kernelnewbies ou sur le canal IRC #kernelnewbies.


Linux
  1. 9 choses à faire dans vos 10 premières minutes sur un serveur Linux

  2. Tests d'intégration continue pour le noyau Linux

  3. Quel est votre outil d'enregistrement d'écran préféré pour Linux ?

  4. Noyau Linux pour Nintendo Wii ?

  5. Le noyau Linux a-t-il une fonction principale ?

Comment modifier les paramètres de démarrage du noyau sous Linux

20 étapes pour préparer votre PC à l'installation de Linux

Comment trouver la version du noyau Linux en cours d'exécution sur votre PC

Transformez votre PC Linux en haut-parleurs Bluetooth pour votre téléphone

Patcher le noyau Linux Raspberry Pi avec KernelCare GRATUITEMENT !

Meilleures distributions KDE Linux pour votre bureau