# qemu: Could not access KVM kernel module: No such file

## frozenQueue

Hi. I'm trying to use the kvm support in qemu to improve VM performance. I built the kernel with KVM as a module, and I even run "modprobe kvm" before trying to run qemu, but I still get this error:

```

$ qemu -enable-kvm -cdrom systemrescuecd-x86-1.6.1.iso 

Could not access KVM kernel module: No such file or directory

failed to initialize KVM
```

As you can see the module is installed:

```
# modinfo kvm

filename:       /lib/modules/2.6.34-gentoo-r12/kernel/arch/x86/kvm/kvm.ko

license:        GPL

author:         Qumranet

depends:        

vermagic:       2.6.34-gentoo-r12 SMP mod_unload modversions ATOM 4KSTACKS 

parm:           oos_shadow:bool

parm:           ignore_msrs:bool

```

I thought maybe that qemu is looking in the wrong place, however, the /usr/src/linux link is pointing to the right kernel (2.6.34-gentoo-r12 is the one I built most recently with genkernel):

```
# eselect kernel list

Available kernel symlink targets:

  [1]   linux-2.6.32-gentoo-r7

  [2]   linux-2.6.34-gentoo-r1

  [3]   linux-2.6.34-gentoo-r6

  [4]   linux-2.6.34-gentoo-r12 *

  [5]   linux-2.6.35-gentoo-r4

# ls -l /usr/src/

total 20

lrwxrwxrwx  1 root root   23 Nov 12 15:13 linux -> linux-2.6.34-gentoo-r12

drwxr-xr-x 21 root root 4096 Aug 11 10:12 linux-2.6.32-gentoo-r7

drwxr-xr-x 24 root root 4096 Aug 26 17:26 linux-2.6.34-gentoo-r1

drwxr-xr-x 24 root root 4096 Nov 19 09:44 linux-2.6.34-gentoo-r12

drwxr-xr-x 23 root root 4096 Sep  8 10:58 linux-2.6.34-gentoo-r6

drwxr-xr-x 24 root root 4096 Nov 15 11:42 linux-2.6.35-gentoo-r4

```

So I'm a bit confused as to why this isn't working.

BTW, I'm running qemu 0.12.5, which I compiled myself.

```
# 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.34-gentoo-r12 i686)

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

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

Timestamp of tree: Fri, 12 Nov 2010 18:00:20 +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' --bwlimit=10"

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

```

----------

## idella4

frozenQueue

```

idella@genny ~/bin $ sudo emerge -s qemu

..............................

*  app-emulation/qemu

      Latest version available: 0.11.1

      Latest version installed: [ Not Installed ]

      Size of files: 3,740 kB

      Homepage:      http://www.qemu.org

      Description:   QEMU emulator and ABI wrapper

      License:       GPL-2

*  app-emulation/qemu-kvm

      Latest version available: 0.13.0-r2

      Latest version installed: 0.12.5

      Size of files: 5,033 kB

      Homepage:      http://www.linux-kvm.org

      Description:   QEMU + Kernel-based Virtual Machine userland tools

      License:       GPL-2

```

 *frozenQueue wrote:*   

> 
> 
> BTW, I'm running qemu 0.12.5, which I compiled myself.
> 
> 

 

That is your problem.

qemu in gentoo is frought with hurdles, if you go outside portage, which is what you state you have done.

Emerging it inside portage still requires vigilant adherence to the required use flags to get it to fire.

Go with portage qemu or qemu-kvm, and try to un-install your qemu to avoid conflict with the portage emerge.

----------

## frozenQueue

Sorry, I think I've been a bit confused about this whole thing. Apparently to use KVM, my CPU has to have virtualization extensions, and it doesn't. This would explain why I don't get a /dev/kvm interface when I load the module.

----------

## Hu

 *frozenQueue wrote:*   

> Hi. I'm trying to use the kvm support in qemu to improve VM performance. I built the kernel with KVM as a module, and I even run "modprobe kvm" before trying to run qemu, but I still get this error:

 Does the modprobe succeed?  What is the output of lsmod; ls -l /dev/kvm; id?

 *frozenQueue wrote:*   

> I thought maybe that qemu is looking in the wrong place

 Qemu does not automatically load the KVM module.  You must manually load the kernel module before starting Qemu.  Thus, Qemu does not need to care what version of the kernel sources you have installed, particularly since you should be using the version of kvm-intel that came with your kernel.

 *frozenQueue wrote:*   

> BTW, I'm running qemu 0.12.5, which I compiled myself.

 Why?  Qemu is available through Portage.  Please tell me you at least compiled it through a custom ebuild, and did not allow it to install directly to the live filesystem.

 *frozenQueue wrote:*   

> 
> 
> ```
> # emerge --info
> 
> ...

 Does this chip actually support VT-x?

 *frozenQueue wrote:*   

> 
> 
> ```
> CFLAGS="-O2 -march=i686 -pipe -m32"
> ```
> ...

 Why -m32?

----------

