I cannot manage to load the tun module in my ArchLinux box. I’m trying to connect with OpenVPN, but the log says:

nm-openvpn[6662]: Note: Cannot open TUN/TAP dev /dev/net/tun: No such device (errno=19) lsmod | grep tun 

Returns nothing:

If I run:

sudo modprobe tun 

It returns failure, but no error message, and lsmod still has no tun. The module seems to exist, as there is a tun.ko.gz in /lib/modules/.

I really dont know what else to try.

5 Answers

This answer is probably a bit late, but I ran into the problem, exactly as described, myself.

Running OpenVPN would produce:

Note: Cannot open TUN/TAP dev /dev/net/tun: No such file or directory (errno=2) 

And running tunctl would produce:

Failed to open '/dev/net/tun' : No such file or directory 

And this command had no output:

lsmod | grep tun 

When attempting to add the tun module via:

modprobe tun 

modprobe would exit with a failure error code (1), and nothing changed.

I found an alternate way of activating the tun module via insmod. First locate the module with this command:

find /lib/modules/ -iname 'tun.ko.gz' 

Then use insmod with the returned path (I only got one match), for example:

insmod /lib/modules/3.6.9-1-ARCH/kernel/drivers/net/tun.ko.gz 

For me, running that command worked, and tunctl and OpenVPN worked okay afterwards.

7

I ran into a similar problem when trying to run openvpn on OVH Cloud VPS, openvpn complains that cannot find TUN interface.

modprobe will always return module not found :

$ sudo modprobe tun FATAL: Module tun not found. 

Finally, I found that tun is not a module but built in kernel, so what I do to solve was created the missing dir and nod:

$ sudo mkdir /dev/net $ sudo mknod /dev/net/tun c 10 200 

And then openvpn can find and use the tun device.

To be noted that afterward, modprobe will still return an error, because tun is not a module.

$ sudo modprobe tun FATAL: Module tun not found. 
4

In Arch linux installing the networkmanager-vpnc or NetworkManager-vpnc package will solve the problem

1

Make sure you do a kernelcheck before running modprobe. See note here

An easy way is to compare the output of

uname -r 

and

pacman -Q linux 

If they're different, reboot. That should fix the modprobe failure.

1

I had a problem where my /lib/modules/.../modules.alias did not contain the line

alias char-major-10-200 tunode_tunnel 

So even if you've done mknod /dev/net/tun and have tun.ko somewhere in /lib/modules/..., it won't load unless modules.alias has the right incantation.

Your Answer

Sign up or log in

Sign up using Google Sign up using Facebook Sign up using Email and Password

Post as a guest

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy