web-dev-qa-db-fra.com

Comment patcher le noyau avec un commit spécifique

Pour un projet sur lequel je travaille, j'ai besoin de ce commit dans mon noyau:

https://git.kernel.org/cgit/linux/kernel/git/bluetooth/bluetooth-next.git/commit/?id=a6ad2a6b9cc1d9d791aee5462cfb8528f366f1d4

C'est fondamentalement seulement quelques lignes de code. Dans le passé, on m'a toujours fourni un environnement approprié pour les projets, sauf que cette fois, il s'agit d'un bogue critique dans notre projet qui a besoin de ce correctif, et comme c'est dans le noyau, je n'ai aucune idée de la façon de le gérer.

Devrais-je compiler un nouveau noyau avec ce correctif? Puis-je simplement remplacer ces lignes de code quelque part dans le noyau Linux, ou n'y a-t-il pas juste un correctif qui ajoute ces lignes de code?

Je n'ai rien essayé moi-même parce que je crains de casser le noyau actuel. Quelqu'un pourrait-il suggérer le meilleur plan d'action? On m'a dit sur le canal Ubuntu IRC que je devrais le poster sur launchpad.net en tant que rapport de bogue. Le problème est que si cela prend plus d'une semaine, il faut modifier certains délais et cela n'est pas souhaité.

J'utilise actuellement la dernière version de Wiley Werewolf.

2
Zimano
2
Pilot6

Le correctif est un fichier de différence entre deux versions du code du noyau. Les lignes vertes dans lesquelles se trouvent les symboles + sont celles à ajouter et les lignes rouges avec - les symboles à supprimer.

Vous pouvez les mettre dans un fichier .patch et utiliser la commande patch pour le cheminer. Cela devrait vous aider à utiliser la commande patch: http://www.thegeekstuff.com/2014/12/patch-command-examples/

vous devez l'ajouter dans la source du noyau, puis recompiler le noyau: http://www.cyberciti.biz/tips/compiling-linux-kernel-26.html

Si vous avez peur de casser le noyau, effectuez une sauvegarde des fichiers initrd et vmlinuz. Quand il est cassé, vous pouvez utiliser grub pour démarrer dans cette version du noyau. Si vous n'êtes pas censé exécuter le noyau sur le PC de compilation et qu'il est destiné à un PC cible, vous ne devriez pas utiliser 'make install'.

0
CS13