# [tun] Probleme de chargement module (presque résolu)

## gluglu

Bonjour les gens,

Je rencontre un problème peut sympathique ! j'ai compilé mon Kernel avec [M] pour tun/tap car j'aimerai créer une interface pour faire du nat avec une VM (qemu).

```

localhost root # lsmod | grep tun

localhost root # modprobe tun

FATAL: Error inserting tun (/lib/modules/2.6.31-gentoo-r6/kernel/drivers/net/tun.ko): Device or resource busy

```

quelqu'un à déjà vu ça ?

----------

## gluglu

aucune idée ?

----------

## gluglu

vraiment ça parle a personne ?

----------

## Leander256

Le seul truc que j'avais trouvé sur google à ce sujet c'est quelqu'un qui essayait de charger le module alors que c'était compilé en dur dans son noyau. Je suppose que ce n'est pas bloquant pour toi mais que tu cherches à trouver la source du problème. Si vraiment tu utilises la bonne version du noyau, peut-être vaut-il mieux faire un rapport de bug vu que c'est un noyau patché par Gentoo.

----------

## gluglu

Si c'est bloquant car je ne peux pas faire de nat pour une vm, je n'ai pas l'interface tun0

```

uname -a

Linux DelliX 2.6.31-gentoo-r6 #4 SMP Wed Nov 18 19:10:41 CET 2009 i686 Genuine Intel(R) CPU T2400 @ 1.83GHz GenuineIntel GNU/Linux

```

et 

```

cat /usr/src/linux-2.6.31-gentoo-r6/.config | grep TUN

CONFIG_YENTA_ENE_TUNE=y

CONFIG_INET_XFRM_TUNNEL=m

CONFIG_INET_TUNNEL=m

CONFIG_INET_XFRM_MODE_TUNNEL=m

CONFIG_INET6_XFRM_TUNNEL=m

CONFIG_INET6_TUNNEL=m

CONFIG_INET6_XFRM_MODE_TUNNEL=m

CONFIG_IPV6_TUNNEL=m

CONFIG_TUN=m

CONFIG_8139TOO_TUNE_TWISTER=y

# CONFIG_ATM_ENI_TUNE_BURST is not set

```

lsmod | grep tun ne donne rien.

```

ifconfig -a

eth0      Lien encap:Ethernet  HWaddr 00:15:c5:cc:b4:c8  

          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1

          RX packets:0 errors:0 dropped:0 overruns:0 frame:0

          TX packets:0 errors:0 dropped:0 overruns:0 carrier:0

          collisions:0 lg file transmission:1000 

          RX bytes:0 (0.0 B)  TX bytes:0 (0.0 B)

          Interruption:17 

lo        Lien encap:Boucle locale  

          inet adr:127.0.0.1  Masque:255.0.0.0

          adr inet6: ::1/128 Scope:Hôte

          UP LOOPBACK RUNNING  MTU:16436  Metric:1

          RX packets:16 errors:0 dropped:0 overruns:0 frame:0

          TX packets:16 errors:0 dropped:0 overruns:0 carrier:0

          collisions:0 lg file transmission:0 

          RX bytes:1232 (1.2 KiB)  TX bytes:1232 (1.2 KiB)

wlan0     Lien encap:Ethernet  HWaddr 00:13:02:46:b5:5c  

          inet adr:192.168.100.100  Bcast:192.168.100.255  Masque:255.255.255.0

          adr inet6: fe80::213:2ff:fe46:b55c/64 Scope:Lien

          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1

          RX packets:2228 errors:0 dropped:0 overruns:0 frame:0

          TX packets:2816 errors:0 dropped:0 overruns:0 carrier:0

          collisions:0 lg file transmission:1000 

          RX bytes:1544992 (1.4 MiB)  TX bytes:408666 (399.0 KiB)

wmaster0  Lien encap:UNSPEC  HWaddr 00-13-02-46-B5-5C-77-6C-00-00-00-00-00-00-00-00  

          UP RUNNING  MTU:0  Metric:1

          RX packets:0 errors:0 dropped:0 overruns:0 frame:0

          TX packets:0 errors:0 dropped:0 overruns:0 carrier:0

          collisions:0 lg file transmission:1000 

          RX bytes:0 (0.0 B)  TX bytes:0 (0.0 B)

```

----------

## man in the hill

compile le en dur ...

----------

## kwenspc

L'interface tun0 n'apparait pas au chargement du module. D'ailleurs tu peux lui filer le nom que tu veux à cette interface.

ce que tu peux essayer c'est ça:

```

tunctl -t tun0 -f /dev/net/tun

```

C'est pas un outil très poussé, mais peut être va-t-il te sortir une erreur un peu explicite.

(une fois crée tu peu virer l'interface avec tunctl -d tun0)

----------

## gluglu

je dois emerger quoi pour avoir cette fameuse commande tunctl ?

[edit]

j'ai trouvé ça a l'air de fonctionner j'ai l'interface en faisant un ifconfig 

http://sourceforge.net/projects/tunctl/files/tunctl/1.5/tunctl-1.5.tar.gz/download

merci

----------

## kwenspc

ouais donc ce que disais Leander256 est bon, t'as l'interface tun dans le kernel à tous les coups (c'est d'ailleurs la seule explication logique)

```

$ equery  belongs tunctl

[ Searching for file(s) tunctl in *... ]

sys-apps/usermode-utilities-20070815 (/usr/bin/tunctl)

```

----------

## gluglu

ouhai mais bon :

```

cat /usr/src/linux-2.6.31-gentoo-r6/.config | grep TUN

CONFIG_YENTA_ENE_TUNE=y

CONFIG_INET_XFRM_TUNNEL=m

CONFIG_INET_TUNNEL=m

CONFIG_INET_XFRM_MODE_TUNNEL=m

CONFIG_INET6_XFRM_TUNNEL=m

CONFIG_INET6_TUNNEL=m

CONFIG_INET6_XFRM_MODE_TUNNEL=m

CONFIG_IPV6_TUNNEL=m

CONFIG_TUN=m

CONFIG_8139TOO_TUNE_TWISTER=y

# CONFIG_ATM_ENI_TUNE_BURST is not set

```

et j'avais essayé de chargé des modules déjà dans le kernel pour voir l'erreur et ce n'était pas la mémé.

----------

## kwenspc

un .config c'est une chose, utiliser le kernel qui a été construit à partir de ce même .config en est une autre... 

Amha tu utilises un kernel autre que celui qui a été construit à partir de ton .config (l'ancien built possédait peut être déjà tun en dur etc...). vérifies ça.

----------

