GNU/Linux >> Tutoriels Linux >  >> Linux

Comment trouver la version d'un module du noyau compilé ?

$ apropos modinfo
modinfo              (8)  - display information about a kernel module
$ modinfo cpuid.ko
filename:       cpuid.ko
author:         H. Peter Anvin <[email protected]>
description:    x86 generic CPUID driver
license:        GPL
vermagic:       2.6.37 SMP preempt mod_unload PENTIUM4 gcc-4.4.5
depends:

Méthode d'exécution

insmod /module_version.ko

cat /sys/modules/module_version/version
# => 1.0

cat /sys/module/module_version/srcversion
# => AB0F06618BC3A36B687CDC5

modinfo /module_version.ko | grep -E '^(src|)version'
# => version:        1.0
# => srcversion:     AB0F06618BC3A36B687CDC5

Testé avec cette configuration sur le noyau 4.9.6.

/sys/modules/module_version/version

version est défini par le MODULE_VERSION macro.

Le fichier n'existe pas si le MODULE_VERSION la macro n'est pas utilisée dans le module.

/sys/module/module_version/srcversion

srcversion est un hachage MD4 du code source utilisé pour compiler le module du noyau. Il est calculé automatiquement au moment de la construction à partir de https://github.com/torvalds/linux/blob/v4.9/scripts/mod/modpost.c#L1978 en utilisant https://github.com/torvalds/linux/blob/ v4.9/scripts/mod/sumversion.c#L400

Pour l'activer, soit :

  • définir MODULE_VERSION pour le module
  • compiler avec CONFIG_MODULE_SRCVERSION_ALL . srcversion est ensuite généré pour tous les modules, y compris ceux sans MODULE_VERSION set :modinfo srcversion :comment puis-je générer ceci à partir de ma source ?

Le srcversion le fichier n'est présent que si l'une des conditions ci-dessus est vérifiée.

Vous pouvez alors vérifier que le .ko construit correspond à celui insmodded avec :

modinfo mymod.ko

Il s'agit d'une vérification de cohérence très utile lorsque vous développez vos propres modules de noyau et que vous copiez des modules entre des machines.

Depuis l'intérieur du module, codez-le avec THIS_MODULE

Vous pouvez utiliser THIS_MODULE->version , voici un exemple :Quelle est la signification de THIS_MODULE dans les pilotes de module du noyau Linux ?


Linux
  1. Linux - Comment trouver les implémentations des appels système du noyau Linux ?

  2. Comment trouver le module du noyau pour un appareil donné ?

  3. Linux - Comment déterminer quel module corrompt le noyau ?

  4. Où puis-je trouver la version d'une arborescence des sources du noyau Linux ?

  5. Comment vérifier HZ dans le terminal?

Comment trouver la version de Redhat Linux installée

Comment vérifier la version du noyau sous Linux

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

Trouver le nom de la distribution Linux, la version et les détails du noyau

Comment trouver la version d'openSUSE

Comment trouver la version d'Ubuntu