# [SOLVED] Problem with tun kernel module

## nenji

Hello,

after I've recompiled my kernel sources (removing ipv6 support) openvpn is not working anymore. The problem seems to be with the tun kernel module: executing 

```
modprobe tun
```

outputs the following error message:

```
FATAL: Error inserting tun (/lib/modules/2.6.32-gentoo-r7/kernel/drivers/net/tun.ko): Unknown symbol in module, or unknown parameter
```

Running dmesg shows a long list of errors related to tun module:

```
tun: disagrees about version of symbol eth_mac_addr

tun: Unknown symbol eth_mac_addr

tun: disagrees about version of symbol skb_put

tun: Unknown symbol skb_put

tun: disagrees about version of symbol skb_copy_datagram_from_iovec

tun: Unknown symbol skb_copy_datagram_from_iovec

...
```

I've tried recompiling the kernel including IPv6 again, but I'm having the same problems.

Any hints?

Thanks a lot  :Wink: Last edited by nenji on Tue Jul 06, 2010 10:20 pm; edited 1 time in total

----------

## MotivatedTea

Usually, "disagrees about version of symbol" error messages indicate that the module you're trying to load wasn't compiled for the kernel configuration you're running. I'd suggest:

 Check "eselect kernel show" to make sure you're compiling the kernel you think you are compiling. (Also check "uname -a" to make sure you're running the kernel you think you are.)

 Compile the kernel again and copy it to where your bootloader expects it, just to make sure.

 When recompiling your kernel, don't forget to run "make modules_install" to make sure that the new tun module is put in the right place.

 Reboot. You need to do that so that you're running the new kernel.

That has always fixed that error for me in the past.

----------

## nenji

Problem solved, thank you so much!

Your advice 

 *Quote:*   

> copy it to where your bootloader expects it, just to make sure. 

 

reminded me that I also have Ubuntu installed in my pc, and that it's ubuntu's grub that is responsible for the boot. To make it short, I've been compiling the gentoo sources (with genkernel, btw) without then copying the kernel image where grub was expecting it to be. I guess the tun module that I was trying to load with modprobe was compiled against the new kernel, but the running kernel was the old one, which caused the problems I've described earlier.

Now it's running fine, even (as one could expect) without IPv6 support.

----------

