Compiled a kernel with TUN/Bridge support, but I cannot find /dev/net/tun

Posted on

Problem :

I compiled my own kernel with tun/tap and bridge support. Both modules load fine at boot time (I could read that in the dmesg output).

Now I want to use it, and the /dev/net/tun node is not there, so my application gives that error.

I’m trying to bridge openvpn connections. Is it possible that udevd is not doing his work?

Thank you!

(PS: I’m on a WD MyBook World Ed NAS device. It’s ARM, so I cross compiled the kernel from my debian linux machine. I also installed debian on the NAS.)

Solution :

from the kernel documentation for tuntap:

36 2. Configuration
37 Create device node:
38 mkdir /dev/net (if it doesn’t exist already)
39 mknod /dev/net/tun c 10 200
41 Set permissions:
42 e.g. chmod 0666 /dev/net/tun
43 There’s no harm in allowing the device to be accessible by non-root users,
44 since CAP_NET_ADMIN is required for creating network devices or for
45 connecting to network devices which aren’t owned by the user in question.
46 If you want to create persistent devices and give ownership of them to
47 unprivileged users, then you need the /dev/net/tun device to be usable by
48 those users.
50 Driver module autoloading
52 Make sure that “Kernel module loader” – module auto-loading
53 support is enabled in your kernel. The kernel should load it on
54 first access.
56 Manual loading
57 insert the module by hand:
58 modprobe tun
60 If you do it the latter way, you have to load the module every time you
61 need it, if you do it the other way it will be automatically loaded when
62 /dev/net/tun is being opened.

3rd google result for /dev/net/tun

Leave a Reply

Your email address will not be published. Required fields are marked *