# Virtualisation -  VT-d problem

## grolsch

When I enable VT-d in the BIOS my kernel fails to boot, and hangs at ' Visualization VT-d DIRECTED I/O '. Currently I have enabled Visualisation within int the kernel and also intel virtualisation support. Could someone enlighten me as to what other options I need to enable to get the kernel to boot.

Many thanks in advance.

----------

## Hu

Most kernels prefer to work with numbers instead of visualizing things.  What kernel version are you using?  What CPU do you have?  If you make the virtualization support a module instead of built-in, does the kernel hang when you modprobe the module?  Do you have any other virtualization products, such as VMware, installed?

----------

## grolsch

Thanks for the reply Hu. I have tried two different kernels, zen-sources and the current gentoo-sources. Both do not boot with VT-d enabled in the bios.

I've added the output from emerge --info ,  

```

Portage 2.2_rc33 (default/linux/amd64/2008.0, gcc-4.3.3, glibc-2.9_p20081201-r2, 2.6.29-zen1 x86_64)

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

System uname: Linux-2.6.29-zen1-x86_64-Intel-R-_Core-TM-_i7_CPU_920_@_2.67GHz-with-gentoo-2.0.0

Timestamp of tree: Thu, 07 May 2009 12:00:04 +0000

app-shells/bash:     4.0_p17-r1

dev-java/java-config: 2.1.7

dev-lang/python:     2.6.2

sys-apps/baselayout: 2.0.0-r2

sys-apps/openrc:     0.4.2-r1

sys-apps/sandbox:    1.9

sys-devel/autoconf:  2.13, 2.63-r1

sys-devel/automake:  1.9.6-r2, 1.10.2

sys-devel/binutils:  2.19.1-r1

sys-devel/gcc-config: 1.4.1

sys-devel/libtool:   2.2.6a

virtual/os-headers:  2.6.28-r1

ACCEPT_KEYWORDS="amd64 ~amd64"

CBUILD="x86_64-pc-linux-gnu"

CFLAGS="-march=native -O2 -pipe -msse4"

CHOST="x86_64-pc-linux-gnu"

CONFIG_PROTECT="/etc /var/lib/hsqldb"

CONFIG_PROTECT_MASK="/etc/ca-certificates.conf /etc/env.d /etc/env.d/java/ /etc/fonts/fonts.conf /etc/gconf /etc/gentoo-release /etc/revdep-rebuild /etc/sandbox.d /etc/terminfo /etc/udev/rules.d"

CXXFLAGS="-march=native -O2 -pipe -msse4"

DISTDIR="/usr/portage/distfiles"

FEATURES="distlocks fixpackages parallel-fetch preserve-libs protect-owned sandbox sfperms strict unmerge-orphans userfetch"

GENTOO_MIRRORS="http://mirror.qubenet.net/mirror/gentoo/ "

LDFLAGS="-Wl,-O1 -Wl,--as-needed -Wl,--hash-style=gnu -Wl,-z,-combreloc"

LINGUAS="en_GB"

MAKEOPTS="-j5"

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"

PORTDIR_OVERLAY="/usr/local/portage/layman/zen-overlay /usr/local/portage/layman/desktop-effects"

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

USE="3dnow 3dnowext X aac aalib acl acpi alsa amd64 ao artist-screen berkdb bzip2 cairo cdr cleartype cli clock-screen cpudetection cracklib crypt custom-cflags custom-cpuopts dbus dri dvd dvdr dvdread emerald encode evdev ffmpeg flac fuse gdbm gif git glitz gpm gtk hal iconv isdnlog java jpeg jpeg2k key-screen lame libcaca libnotify lyrics-screen mad midi mmx mmxext mp3 mpeg mudflap multilib ncurses nls nptl nptlonly nsplugin nvidia offensiv offensive ogg oggflac opengl openmp oss outputs-screen pam pcre perl png pppd pulseaudio python readline reflection session song-screen spl sse sse2 ssl ssse3 subversion suid sysfs tcpd threads tiff truetype unicode usb vdpau vorbis wide xanim xcomposite xml xorg xv xvmc zlib" ALSA_CARDS="ali5451 als4000 atiixp atiixp-modem bt87x ca0106 cmipci 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 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" ELIBC="glibc" INPUT_DEVICES="keyboard mouse evdev wacom" KERNEL="linux" LCD_DEVICES="bayrad cfontz cfontz633 glk hd44780 lb216 lcdm001 mtxorb ncurses text" LINGUAS="en_GB" USERLAND="GNU" VIDEO_CARDS="nvidia"

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

```

At present I have Virtualbox installed , but I am looking towards Xen in the future.

----------

## jmartos

Try disabling virtualization in your kernel. It is there for KVM and you dont need it if you are using virtualbox. I use virtualbox myself and it is running fine with the VT-d enabled in the BIOS. I do have virtualization disabled in the kernel. However, I'm not sure if virtualbox even uses the VT-d extensions. I'm running dual nehalem Xeons on my system and kernel 2.6.28-gentoo-r5.

----------

## grolsch

Okay I did as you suggested but still not luck. I'll install the 2.6.26-gentoo-r5 kernel and take it from there. 

Cheers for the post.

----------

## grolsch

Nah, still no luck. I might be wrong but I think I was able to boot in Debian whilst Vt-d was enabled in the BIOS. I'll need to double check , at least that way I can narrow down the problem.

----------

## pigeon768

VT-d and VT-x are not the same thing. VT-x enables you to virtualize your processor. Many VM's support this to good effect. AMD's version is called AMD-V.

VT-d enables you to virtualize input/output devices, like your keyboard, mouse, videocard, or hard disk drive. There's a (very) short list of VM's that support VT-d, and from what I know none of them support a host OS.

Disable VT-d in the bios, unless you know specifically that your VM supports it. From what I can tell, the only VM's that do are lynxsecure and virtuallogix vlx, both of which are hypervisors.

----------

## grolsch

Cheers for the reply and the short description.

----------

