[pvrusb2] Module symbol version mismatch junk

Mike Isely isely at isely.net
Fri Dec 9 00:02:57 CST 2005


OK, well I've tried a few things in an attempt to cause a message 
resembling this:

>>> Dec  9 09:34:49 192 kernel: pvrusb2: disagrees about version of symbol
>>> tveeprom_hauppauge_analog

To do this, I've deliberately swapped kernel headers for building 
tveeprom.ko and I've also tried changing compilers out from under the 
build.  But the errors I get are different.  This is what I see when I try 
changing compilers:

Dec  8 23:56:55 londo kernel: [4893473.238000] tveeprom: version magic '2.6.14.3-k7-isely1 preempt K7 gcc-3.4' should be '2.6.14.3-k7-isely1 preempt K7 gcc-3.3'

If I swap in different headers for a different kernel version, the results 
are similar:

Dec  9 00:12:04 londo kernel: [4894383.221000] tveeprom: version magic '2.6.15-rc2-k7-isely1 preempt K7 gcc-3.3' should be '2.6.14.3-k7-isely1 preempt K7gcc-3.3'

This from my point of view, all makes sense.  After all I'm doing clearly 
illegal things here and the module loader is catching it.  But I can't 
find any way to cause the "disagrees about version of symbol yaddayadda" 
type of message at all.

I have tried also loading pvrusb2.ko without a tveeprom.ko available at 
all.  In that case I get a response to the effect that pvrusb2.ko simply 
can't be loaded because of the obvious missing symbol - but still no 
message about disagreeable version info.

Now realize that I have CONFIG_MODVERSIONS disabled in my kernel build. 
The description of this (experimental) feature suggests that it lets 
modules be a little looser in their compatibility, which suggests that the 
strict checking that we see above might be disabled.  Perhaps if I turned 
this option on and tried to abuse things some more that I'd see the error 
that you are seeing.  Unfortunately it's going to take quite some time to 
rebuild everything for this.  I may do it anyway, but I won't have any 
results from this tonight.

I'd like to take a poll here.  Can people here tell me if you have 
CONFIG_MODVERSIONS enabled in your kernel?  If you have /proc/config.gz 
enabled, you can find out easily with a command like this:

   zgrep CONFIG_MODVERSIONS /proc/config.gz

I'd also like to know who among you has seen the error message I'm trying 
to force and what you did to solve the problem.  My gut feeling is that 
this is all just another variation of using mismatched kernel headers 
between the building of pvrusb2.ko and tveeprom.ko, but if this were such 
an obvious cause then why do people keep hitting it?

   -Mike


-- 
                         |         Mike Isely          |     PGP fingerprint
      Spammers Die!!     |                             | 03 54 43 4D 75 E5 CC 92
                         |   isely @ pobox (dot) com   | 71 16 01 E2 B5 F5 C1 E8
                         |                             |


More information about the pvrusb2 mailing list