Compiling kernel modules version mismatch - line6usb

  • gabrbedd
Posted: Sun, 06/29/2008 - 21:50
Hi guys! I compiled the line6usb kernel driver, but it wouldn't load unless I force it. When I force it, it works fine, but complains about a module/kernel version mismatch. However, I built it against the right headers. Why does the module version not match? How should I go about compiling this module? Is it possibly a GCC version mismatch? More details.... The line6usb kernel driver project is hosted here: http://sourceforge.net/projects/line6linux Every time I load the module, I get these messages: # dmesg | tail line6usb: disagrees about version of symbol snd_card_disconnect line6usb: Unknown symbol snd_card_disconnect line6usb: disagrees about version of symbol snd_card_register line6usb: Unknown symbol snd_card_register line6usb: disagrees about version of symbol snd_card_free line6usb: Unknown symbol snd_card_free line6usb: disagrees about version of symbol snd_card_new line6usb: Unknown symbol snd_card_new line6usb: disagrees about version of symbol snd_card_disconnect line6usb: Unknown symbol snd_card_disconnect When I forced the module it, it worked fine... but added the following messages: line6usb: no version for "struct_module" found: kernel tainted. line6usb: no version magic, tainting kernel I'm using the stock linux-image-2.6.21-1-multimedia-486 kernel and linux-headers-2.6.21-1-multimedia-486. This module builds and loads fine on Debian Etch 4.0 with the 2.6.18 kernels. I originally filed this as a bug for the line6usb driver here.

SOLVED

  • gabrbedd
  • 06/29/08
  • Mon, 10/06/2008 - 17:26
The issue seems to be that 64 Studio uses an out-of-tree version of ALSA.[1] The line6usb driver (also out-of-tree) depends on ALSA. Since line6usb is depending on an out-of-tree module, this creates the issue when building the module. I could not find any workarounds for this situation, especially since the kernel devs frown on out-of-tree modules. I solved (or worked around) this issue by compiling my own kernel (2.6.26.5-rt9) and using the in-tree version of ALSA (1.0.16). Now the line6usb driver builds and loads just fine. [1] For those who don't know: "out-of-tree" means that the code is part of the kernel, but was not compiled in/with the main kernel sources. Instead, it was downloaded separately and compiled as a module.

Good advice

  • gabrbedd
  • 06/29/08
  • Sun, 07/06/2008 - 22:03
That's good advice. I'll do that... thanks!

mailing list?

  • Pablo
  • 07/11/07
  • Sun, 07/06/2008 - 08:49
It's improbable that you'll get an answer here. Why don't you sign up at the user's mailing list? I'm sure it will come up there. Developers are very kind but they don't read the fora so often, I reckon. Pablo

bump

  • gabrbedd
  • 06/29/08
  • Sat, 07/05/2008 - 15:50
...Anyone? ...Anyone?