2011-01-29 31 views

Trả lời

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

Trong khi câu trả lời này giải quyết được vấn đề của tôi, tôi tin rằng giá trị ma trận phản ánh phiên bản hạt nhân mà mô-đun được biên dịch, chứ không phải phiên bản của mô-đun. Để kiểm tra điều này, tôi đã thử "modprobe nvidia" vì nvidia không có trong kernel và do đó phải có một số phiên bản khác. "modprobe nvidia" đã trả lại phiên bản hạt nhân cho giá trị ma trận. –

+1

Vâng, đánh giá bằng cách reskimming [LDD3] (http://lwn.net/Kernel/LDD3/), đó là thông tin phiên bản * chuẩn * duy nhất được bao gồm. Tác giả trình điều khiển được tự do bao gồm một phiên bản khác, nhưng hạt nhân không quan tâm, nếu nó không có trong cấu trúc thông tin. Nếu chúng bao gồm nó như là một chuỗi, bạn có thể có một số may mắn với 'string foo.ko', nhưng nếu chúng xây dựng nó từ các số nguyên với' kprintf' (tìm kiếm '% d.% D.% D' hoặc một cái gì đó dọc theo chúng dòng), bạn có thể không may mắn. P.S. [superuser.com] (superuser.com) có thể là một nơi tốt hơn để đăng bài này và bạn có thể nhận được các câu trả lời khác nếu bạn đăng ở đó. –

1

Runtime phương pháp

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 

Thử nghiệm với this setup trên kernel 4.9.6.

version

version được cho bởi MODULE_VERSION. Tệp không tồn tại nếu MODULE_VERSION không được cung cấp.

srcversion

srcversion là một hash MD4 của mã nguồn sử dụng để biên dịch các module kernel. Nó được tính toán tự động ở thời gian xây dựng từ https://github.com/torvalds/linux/blob/v4.9/scripts/mod/modpost.c#L1978 sử dụng https://github.com/torvalds/linux/blob/v4.9/scripts/mod/sumversion.c#L400

Để kích hoạt nó, hoặc là:

Các srcversion chỉ xuất hiện khi được đưa ra.

Sau đó bạn có thể kiểm tra việc xây dựng .ko phù hợp với một insmodded với:

modinfo mymod.ko 

Đây là một kiểm tra sanity rất hữu ích khi bạn đang phát triển kernel module và các module sao chép giữa các máy của riêng bạn.

Các vấn đề liên quan