Comparer deux fichiers de configuration du noyau du point de vue menuconfig?


13

J'ai une situation dans laquelle j'ai deux fichiers de configuration du noyau (pour la même source de noyau). Les deux ont une partie des fonctionnalités dont j'ai besoin (d'un côté, l'USB fonctionne correctement, de l'autre le deuxième I2C).

Je sais que les différences entre les deux fichiers de configuration, du point de vue de menuconfig, ne comprennent que quelques options sélectionnées. (Mais je ne sais pas lesquels)

Cependant, lorsque les fichiers de configuration sont comparés manuellement (fusion entre deux fichiers .config), les différences ne sont pas simples à identifier. J'ai essayé de les fusionner manuellement sans succès. Je suis sûr que je réussirai finalement, mais je pense que le processus pourrait être beaucoup plus indolore si les fichiers étaient comparés de manière à apparaître dans le menu menuconfig.

Peut-on y parvenir, et si oui, comment?

Réponses:


16

Essayez d'utiliser à scripts/diffconfigpartir de l'arborescence des sources du noyau Linux.

Usage:

diffconfig config-a config-b

Affiche une liste des lignes supprimées, modifiées et ajoutées au fichier config-b par rapport à config-a.



3

Vous pouvez essayer sortles fichiers avant de comparer:

meld <(sort config-a) <(sort config-b)

3

Si les deux fichiers sont générés par make menuconfig, ils auront les options dans le même ordre, donc un simple diff(via Meld ou n'importe quelle interface que vous aimez) donnera un résultat utilisable.

Vous pourriez obtenir quelque chose de plus lisible si vous ignorez les lignes de commentaire:

diff -I '^#' old.config new.config

Si, pour une raison quelconque, les fichiers ne sont pas dans le même ordre, vous pouvez les trier. Cela a l'inconvénient de séparer les options connexes. Encore une fois, supprimez les commentaires. Utilisez commpour supprimer les lignes communes.

comm -3 <(<old.config grep '^[^#]' | sort) <(<new.config grep '^[^#]' | sort)

1

Utilisez kdiff3pour comparer deux configurations.

Si quelqu'un veut comparer le fichier .config (configuration actuelle) à une configuration par défaut de l'arborescence du noyau, exportez d'abord defconfig à partir de la configuration actuelle:

make savedefconfig

Cela exportera le fichier defconfig, qui peut être facilement comparé à tout autre fichier de configuration par défaut.

En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.