2011-01-29 30 views

cevap

8
$ 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: 
+1

Bu cevap sorunumu çözerken, vermagic değerin modülün değil, modülün derlenmiş olduğu çekirdek sürümünü yansıttığına inanıyorum. Bunu test etmek için "modprobe nvidia" yi denedim çünkü nvidia çekirdeğe dahil değil ve farklı bir versiyon numarasına sahip olmalı. "modprobe nvidia", vermagic değeri için çekirdek sürümünü döndürdü. –

+1

Reskimming [LDD3] (http://lwn.net/Kernel/LDD3/) ile yargılamak, bu sadece * standart * sürüm bilgisidir. Sürücü yazarı, başka bir sürüm damgası dahil etmekte özgürdür, ancak bilgi yapısında değilse, çekirdek ilgilenmez. Eğer bir string olarak eklerlerse, foo.ko' dizgileriyle biraz şansınız olabilir, ancak eğer 'kprintf' ile tamsayılardan oluşturuyorlarsa (% d.% D.% D' yi arayın ya da satır), şanstan kurtulmuş olabilirsiniz. Not; [superuser.com] (superuser.com) bunu yayınlamak için daha iyi bir yer olabilir ve eğer oraya gönderirseniz başka cevaplar alabilirsiniz. –

1

Çalışma yöntemi

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 

çekirdek 4.9.6 üzerinde this setup ile test edilmiştir.

version

version

MODULE_VERSION ile verilir. MODULE_VERSION verilmediyse dosya mevcut değil.

srcversion

srcversion

çekirdek modülü oluşturmak için kullanılan kaynak kodunun bir MD4 bozulmasıdır. Bunu etkinleştirmek için

https://github.com/torvalds/linux/blob/v4.9/scripts/mod/sumversion.c#L400 kullanılarak https://github.com/torvalds/linux/blob/v4.9/scripts/mod/modpost.c#L1978 gelen yapı anda otomatik olarak hesaplanır, ya edilmektedir:

srcversion sadece mevcut.

Daha sonra inşa .ko ile insmodded eşleştiğini kontrol edebilirsiniz:

modinfo mymod.ko 

Bu çekirdek modülleri ve makineler arasında kopyalama modülleri kendi geliştiriyorlar çok kullanışlı aklı kontrol olduğunu.

İlgili konular