Il arrive souvent lorsqu'on compile des modules externes (au sens non issus du noyau linux www.kernel.org) que l'on ait des problèmes de symboles non résolus ou des conflits de version avec des modules du noyau.
Ma question est la suivante: comment à partir du nom d'un module du noyau trouver le nom de l'option de configuration du noyau qui a provoqué la compilation de ce module ?
Exemple r8169 = > CONFIG_R8169=m
# recherche dans "make menuconfig"
Posté par tgl . Évalué à 3.
# .
Posté par snt . Évalué à 4.
Affiche pour l'option de config pour chaque ligne renvoyée par "lsmod".
A lancer en root donc.
Je garantis pas le résultat, mais chez moi ça à l'air d'etre a peu pres correct.
#!/bin/sh
MAKEFILES=$(find /usr/src/linux/ -name Makefile)
MODULES=$(lsmod | awk '{ print $1 }' | grep -v '^Module$')
STRINGMODULES="("
for MODULE in $MODULES
do
{
MODULE=" "$MODULE"\."
STRINGMODULES="$STRINGMODULES""$MODULE""|"
} done ;
STRINGMODULES="$STRINGMODULES""FLEMME_DE_VIRER_LE_DERNIER_PIPE)"
for MAKEFILE in $MAKEFILES
do
{
egrep -H "$STRINGMODULES" "$MAKEFILE" | grep CONFIG
} done ;
[^] # Mille Merci
Posté par mac_is_mac (site web personnel) . Évalué à 2.
Je sens que ce script va me faire gagner des heures.
Tu devrais vraiment en faire une astuce.
[^] # Re: Mille Merci
Posté par snt . Évalué à 2.
Le gros soucis c'est que je me demande si il y'a pas des dependances de modules vers d'autres et donc d'options de config vers d'autres. Comme je suis bien incapable de gerer ce genre de trucs, et que je veux pas filer une astuce qui marche "dans la plupart des cas", je prefere m'abstenir.
C'est un script qui peux dépanner peut-etre mais je soupconne quand meme qu'il puisse fournir un resultat érronné dans certains cas donc je prefere plutot le diffuser comme une base de travail ;-)
Suivre le flux des commentaires
Note : les commentaires appartiennent à celles et ceux qui les ont postés. Nous n’en sommes pas responsables.