# qemu tun/tap: TUNSETIFF: Device or resource busy

## frozenQueue

Hi. I'm trying to set up communication between a host system and a qemu vm, so the host system can access a server on the vm. Unfortunately, I don't really know what I'm doing (explanations on the Internet are not very beginner friendly) but I've been trying to follow the instructions given in the Gentoo guide for doing this via TUN/TAP.

http://en.gentoo-wiki.com/wiki/QEmu

I altered my /etc/conf.d/net file like they described and restarted network services, which created a br0 interface on the host, and used put an IP address on br0 through DHCP.  I modprobed the tun module, which created a /dev/net/tun file. I added a qemu-ifup script using the code they provided, and executed my qemu session like so:

```

# /usr/local/bin/qemu --cdrom systemrescuecd-x86-1.6.1.iso -net nic,macaddr=52:54:00:12:34:56 -net tap,ifname=tap0,script=/etc/qemu-ifup
```

The qemu session starts, but I see the following in the terminal:

```
TUNSETIFF: Device or resource busy
```

Also, the tutorial does not indicate what I am supposed to do inside the VM to set up networking. The guest OS sees two interfaces, lo and eth0, but I am not sure what IP address I am supposed to assign to eth0, or if there is supposed to be another interface available... I do not understand what the tun/tap interface is supposed to look like on the qemu guest side (or the host side, for that matter). I tried just assigning the guest eth0 an ip address that is on the same network as the host OS, but I cannot ping the across.

Here is the ifconfig info for the host while the VM is running:

```
br0       Link encap:Ethernet  HWaddr XX:XX:XX:XX:f3:9d  

          inet addr:192.168.0.109  Bcast:192.168.0.255  Mask:255.255.255.0

          inet6 addr: fe80::224:e8ff:feda:f39d/64 Scope:Link

          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1

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

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

          collisions:0 txqueuelen:0 

          RX bytes:830352 (810.8 KiB)  TX bytes:260508 (254.4 KiB)

eth0      Link encap:Ethernet  HWaddr XX:XX:XX:XX:f3:9d  

          inet6 addr: fe80::224:e8ff:feda:f39d/64 Scope:Link

          UP BROADCAST RUNNING PROMISC MULTICAST  MTU:1500  Metric:1

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

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

          collisions:0 txqueuelen:1000 

          RX bytes:2107699 (2.0 MiB)  TX bytes:308708 (301.4 KiB)

          Interrupt:43 

lo        Link encap:Local Loopback  

          inet addr:127.0.0.1  Mask:255.0.0.0

          inet6 addr: ::1/128 Scope:Host

          UP LOOPBACK RUNNING  MTU:16436  Metric:1

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

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

          collisions:0 txqueuelen:0 

          RX bytes:65750 (64.2 KiB)  TX bytes:65750 (64.2 KiB)

tap0      Link encap:Ethernet  HWaddr XX:XX:XX:XX:13:b3  

          inet6 addr: fe80::d89e:5fff:fe15:13b3/64 Scope:Link

          UP BROADCAST RUNNING PROMISC MULTICAST  MTU:1500  Metric:1

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

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

          collisions:0 txqueuelen:500 

          RX bytes:13062 (12.7 KiB)  TX bytes:179099 (174.9 KiB)
```

```

# emerge --info

Portage 2.1.8.3 (default/linux/x86/10.0/desktop/gnome, gcc-4.4.4, glibc-2.11.2-r3, 2.6.35-gentoo-r4 i686)

=================================================================

System uname: Linux-2.6.35-gentoo-r4-i686-Intel-R-_Atom-TM-_CPU_N270_@_1.60GHz-with-gentoo-1.12.14

Timestamp of tree: Wed, 10 Nov 2010 17:00:23 +0000

distcc 3.1 i686-pc-linux-gnu [disabled]

app-shells/bash:     4.1_p7

dev-java/java-config: 2.1.11-r1

dev-lang/python:     2.6.5-r3, 3.1.2-r4

dev-util/cmake:      2.8.1-r2

sys-apps/baselayout: 1.12.14-r1

sys-apps/sandbox:    2.3-r1

sys-devel/autoconf:  2.13, 2.65-r1

sys-devel/automake:  1.9.6-r3, 1.10.3, 1.11.1

sys-devel/binutils:  2.20.1-r1

sys-devel/gcc:       4.4.4-r2

sys-devel/gcc-config: 1.4.1

sys-devel/libtool:   2.2.10

sys-devel/make:      3.81-r2

virtual/os-headers:  2.6.30-r1

ACCEPT_KEYWORDS="x86"

ACCEPT_LICENSE="* -@EULA"

CBUILD="i686-pc-linux-gnu"

CFLAGS="-O2 -march=i686 -pipe -m32"

CHOST="i686-pc-linux-gnu"

CONFIG_PROTECT="/etc /usr/share/X11/xkb"

CONFIG_PROTECT_MASK="/etc/ca-certificates.conf /etc/env.d /etc/env.d/java/ /etc/fonts/fonts.conf /etc/gconf /etc/revdep-rebuild /etc/sandbox.d /etc/terminfo /etc/texmf/language.dat.d /etc/texmf/language.def.d /etc/texmf/updmap.d /etc/texmf/web2c"

CXXFLAGS="-O2 -march=i686 -pipe -m32"

DISTDIR="/usr/portage/distfiles"

FEATURES="assume-digests distlocks fixpackages news parallel-fetch protect-owned sandbox sfperms strict unmerge-logs unmerge-orphans userfetch"

GENTOO_MIRRORS="http://distfiles.gentoo.org"

LANG="en_US.UTF-8"

LDFLAGS="-Wl,-O1 -Wl,--as-needed"

MAKEOPTS="-j1"

PKGDIR="/usr/portage/packages"

PORTAGE_CONFIGROOT="/"

PORTAGE_RSYNC_OPTS="--recursive --links --safe-links --perms --times --compress --force --whole-file --delete --stats --timeout=180 --exclude=/distfiles --exclude=/local --exclude=/packages"

PORTAGE_TMPDIR="/var/tmp"

PORTDIR="/usr/portage"

SYNC="rsync://rsync.gentoo.org/gentoo-portage"

USE="X a52 aac acl acpi alsa bash-completion berkdb bluetooth branding bzip2 cairo cdr cli consolekit cracklib crypt cups cxx dbus dell dri dts dvd dvdr eds emacs emboss encode evo exif fam firefox flac fortran gdbm gdu gif gnome gnome-keyring gpm gstreamer gtk hal iconv ipv6 jpeg laptop lcms ldap libnotify mad mikmod mmx mng modules mp3 mp4 mpeg mudflap nautilus ncurses nls nptl nptlonly ogg opengl openmp pam pango pcre pdf perl png policykit ppds pppd python qt3support qt4 readline sdl session spell sse sse2 ssl ssse3 startup-notification svg sysfs tcpd tiff truetype unicode usb vorbis x264 x86 xcb xml xorg xulrunner xv xvid zlib" ALSA_CARDS="ali5451 als4000 atiixp atiixp-modem bt87x ca0106 cmipci emu10k1 emu10k1x ens1370 ens1371 es1938 es1968 fm801 hda-intel intel8x0 intel8x0m maestro3 trident usb-audio via82xx via82xx-modem ymfpci" ALSA_PCM_PLUGINS="adpcm alaw asym copy dmix dshare dsnoop empty extplug file hooks iec958 ioplug ladspa lfloat linear meter mmap_emul mulaw multi null plug rate route share shm softvol" APACHE2_MODULES="actions alias auth_basic authn_alias authn_anon authn_dbm authn_default authn_file authz_dbm authz_default authz_groupfile authz_host authz_owner authz_user autoindex cache cgi cgid dav dav_fs dav_lock deflate dir disk_cache env expires ext_filter file_cache filter headers include info log_config logio mem_cache mime mime_magic negotiation rewrite setenvif speling status unique_id userdir usertrack vhost_alias" COLLECTD_PLUGINS="df interface irq load memory rrdtool swap syslog" ELIBC="glibc" GPSD_PROTOCOLS="ashtech aivdm earthmate evermore fv18 garmin garmintxt gpsclock itrax mtk3301 nmea ntrip navcom oceanserver oldstyle oncore rtcm104v2 rtcm104v3 sirf superstar2 timing tsip tripmate tnt ubx" INPUT_DEVICES="keyboard mouse evdev" KERNEL="linux" LCD_DEVICES="bayrad cfontz cfontz633 glk hd44780 lb216 lcdm001 mtxorb ncurses text" PHP_TARGETS="php5-2" RUBY_TARGETS="ruby18" USERLAND="GNU" VIDEO_CARDS="fbdev glint intel mach64 mga neomagic nouveau nv r128 radeon savage sis tdfx trident vesa via vmware voodoo" XTABLES_ADDONS="quota2 psd pknock lscan length2 ipv4options ipset ipp2p iface geoip fuzzy condition tee tarpit sysrq steal rawnat logmark ipmark dhcpmac delude chaos account" 

Unset:  CPPFLAGS, CTARGET, EMERGE_DEFAULT_OPTS, FFLAGS, INSTALL_MASK, LC_ALL, LINGUAS, PORTAGE_COMPRESS, PORTAGE_COMPRESS_FLAGS, PORTAGE_RSYNC_EXTRA_OPTS, PORTDIR_OVERLAY

```

----------

## frozenQueue

Um... seems to be working now. After restarting the computer twice, now I can go into the VM and the eth0 interface is  able to ping the host or any of the other IP address on the bridged network.

Must of been tiny, evil network gremlins messing with the Ethernet frames or something like that.

----------

## guid0

For those hitting this post, i had a dependency on the net-misc/vde service which was started prior to restarting the tap0 device. stopping vde, then starting net.tap0 before starting vde resolved it for me.

hope this helps.

guid0.

----------

