Subject: version of a kernel module? and modload man page
To: None <tech-kern@netbsd.org>
From: Jeremy C. Reed <reed@reedmedia.net>
List: tech-kern
Date: 03/21/2006 19:55:47
How can I find out the version that a kernel module was built for?
Installing it outputs generic "Program version wrong".
modload with -v also does not show.
In my case, I do know (but I still want to know how I can find out
anyways).
Maybe modstat can be extended to show information from a lkm file. (I am
only beginning to learn the lkm code.)
I forced a module built on NetBSD 2.1 to load on a NetBSD 2.0_STABLE (from
August 2005).
# modstat
Type Id Offset Loadaddr Size Info Rev Module Name
DEV 0 -1/161 c442a000 00a8 c444f0e0 2 pf
Looks like modstat(8) man page needs to be updated also to explain the
above (especially "Info"). Looking at source I see:
Type is type of module, such as "SYSCALL", "VFS", "DEV", "STRMOD", "EXEC",
"COMPAT", "MISC" or "(UNKNOWN)". (Good to explain each of these too.)
Id is the module identification number.
Offset is the target table offset.
Loadaddr is the address the module loaded at.
Size is the size in kilobytes (in hex).
Info is the kernel address of private area.
And Rev is the LKM compile version. (Source says "always 1 for now" which
doesn't match above.)
Can you quickly share some thoughts on above so I can add to the modload
manual page? (Or if better I can improve the lkm(4) and point to it.)
Jeremy C. Reed
ps. Please cc me.