[virt-tools-list] virt-manger: KVM is not available.

Florian Lindner mailinglists at xgm.de
Wed May 4 17:38:27 UTC 2011

Am Dienstag 03 Mai 2011, 17:19:48 schrieb Cole Robinson:
> On 05/02/2011 03:25 PM, Florian Lindner wrote:
> > Am Montag 02 Mai 2011, 16:23:10 schrieb Cole Robinson:
> >> On 05/01/2011 05:26 PM, Florian Lindner wrote:
> >>> Hello!
> >>> 
> >>> I have a problem with virt-manage saying my KVM wasn't available.
> >>> 
> >>> System is Archlinux, libvirtd 0.9.0, Kernel 2.6.38.
> >>> CPU is a Phenom X4, supports virtualization.
> >>> 
> >>> modprobe kvm and kvm-amd works fine:
> >>> 
> >>> May  1 23:19:48 localhost kernel: [  750.262215] kvm: Nested
> >>> Virtualization enabled
> >>> May  1 23:19:48 localhost kernel: [  750.262218] kvm: Nested Paging
> >>> enabled
> >>> 
> >>> starting up libvirtd:
> >>> 
> >>> May  1 23:21:23 localhost kernel: [  844.527695] Bridge firewalling
> >>> registered May  1 23:21:23 localhost kernel: [  844.537781] tun:
> >>> Universal TUN/TAP device driver, 1.6
> >>> May  1 23:21:23 localhost kernel: [  844.537784] tun: (C) 1999-2004 Max
> >>> Krasnyansky <maxk at qualcomm.com>
> >>> May  1 23:21:23 localhost avahi-daemon[1370]: Withdrawing workstation
> >>> service for .
> >>> May  1 23:21:23 localhost avahi-daemon[1370]: Withdrawing workstation
> >>> service for virbr0.
> >>> May  1 23:21:23 localhost kernel: [  844.737116] ip_tables: (C)
> >>> 2000-2006 Netfilter Core Team
> >>> May  1 23:21:23 localhost kernel: [  844.752760] ip6_tables: (C)
> >>> 2000-2006 Netfilter Core Team
> >>> 
> >>> 
> >>> start virt-manager as user but granting root priviliges when asked on
> >>> startup. When creating a new VM it says that KVM is not available.
> >>> 
> >>> qemu -enable-kvm has worked fine so far.
> >>> 
> >>> Why is that error message?
> >>> 
> >>> Thanks,
> >>> 
> >>> Florian
> >> 
> >> That error means that libvirt did not detect KVM support. Libvirt checks
> >> for a /usr/bin/qemu* binary, /dev/kvm, and proper permissions to run
> >> both.
> > 
> > Permissions should be fine:
> > 
> > florian at horus ~ % groups
> > sys kvm scanner florian
> > 
> > florian at horus ~ % ll /dev/kvm
> > crw-rw----+ 1 root kvm 10, 232  2. Mai 21:04 /dev/kvm
> > 
> > florian at horus ~ % ll /usr/bin/qemu*
> > -rwxr-xr-x 1 root root 2961888 21. Feb 21:10 /usr/bin/qemu*
> > [...]
> > -rwxr-xr-x 1 root root 3033280 21. Feb 21:10 /usr/bin/qemu-system-x86_64*
> > -rwxr-xr-x 1 root root 2055048 21. Feb 21:10 /usr/bin/qemu-x86_64*
> > 
> >> What's the output of virsh --connect qemu:///session capabilities | grep
> >> kvm and virsh --connect qemu:///system capabilities | grep kvm ?
> > 
> > They both return nothing, run as user as well as being run as root. When
> > run as user the second commands asks for root priviliges which are
> > granted.
> Hmm, full output of virsh --connect qemu:///system capabilities (as
> root) and qemu-system-x86_64 -help would be interesting.


both commands outputs are below.



root at horus /home/florian # virsh --connect qemu:///system capabilities

      <topology sockets='1' cores='4' threads='1'/>
      <feature name='wdt'/>
      <feature name='skinit'/>
      <feature name='osvw'/>
      <feature name='3dnowprefetch'/>
      <feature name='cr8legacy'/>
      <feature name='extapic'/>
      <feature name='cmp_legacy'/>
      <feature name='3dnow'/>
      <feature name='3dnowext'/>
      <feature name='pdpe1gb'/>
      <feature name='fxsr_opt'/>
      <feature name='mmxext'/>
      <feature name='ht'/>
      <feature name='vme'/>

    <arch name='i686'>
      <machine canonical='pc-0.14'>pc</machine>
      <domain type='qemu'>
      <acpi default='on' toggle='yes'/>
      <apic default='on' toggle='no'/>

    <arch name='x86_64'>
      <machine canonical='pc-0.14'>pc</machine>
      <domain type='qemu'>
      <acpi default='on' toggle='yes'/>
      <apic default='on' toggle='no'/>

    <arch name='arm'>
      <domain type='qemu'>

    <arch name='mips'>
      <domain type='qemu'>

    <arch name='mipsel'>
      <domain type='qemu'>

    <arch name='sparc'>
      <domain type='qemu'>

    <arch name='ppc'>
      <machine canonical='bamboo-0.13'>bamboo</machine>
      <domain type='qemu'>



root at horus /home/florian # qemu-system-x86_64 -help 
QEMU emulator version 0.14.0, Copyright (c) 2003-2008 Fabrice Bellard
usage: qemu [options] [disk_image]

'disk_image' is a raw hard disk image for IDE hard disk 0

Standard options:
-h or -help     display this help and exit
-version        display version information and exit
-M machine      select emulated machine (-M ? for list)
-cpu cpu        select CPU (-cpu ? for list)
-smp n[,maxcpus=cpus][,cores=cores][,threads=threads][,sockets=sockets]
                set the number of CPUs to 'n' [default=1]
                maxcpus= maximum number of total cpus, including
                offline CPUs for hotplug, etc
                cores= number of CPU cores on one socket
                threads= number of threads on one CPU core
                sockets= number of discrete sockets in the system
-numa node[,mem=size][,cpus=cpu[-cpu]][,nodeid=node]
-fda/-fdb file  use 'file' as floppy disk 0/1 image
-hda/-hdb file  use 'file' as IDE hard disk 0/1 image
-hdc/-hdd file  use 'file' as IDE hard disk 2/3 image
-cdrom file     use 'file' as IDE cdrom image (cdrom is ide1 master)
-drive [file=file][,if=type][,bus=n][,unit=m][,media=d][,index=i]
                use 'file' as a drive image
-set group.id.arg=value
                set <arg> parameter for item <id> of type <group>
                i.e. -set drive.$id.file=/path/to/image
-global driver.property=value
                set a global default for a driver property
-mtdblock file  use 'file' as on-board Flash memory image
-sd file        use 'file' as SecureDigital card image
-pflash file    use 'file' as a parallel flash image
-boot [order=drives][,once=drives][,menu=on|off]
                'drives': floppy (a), hard disk (c), CD-ROM (d), network (n)
-snapshot       write to temporary files instead of disk image files
-m megs         set virtual RAM size to megs MB [default=128]
-mem-path FILE  provide backing storage for guest RAM
-mem-prealloc   preallocate guest memory (use with -mem-path)
-k language     use keyboard layout (for example 'fr' for French)
-audio-help     print list of audio drivers and their options
-soundhw c1,... enable audio support
                and only specified sound cards (comma separated list)
                use -soundhw ? to get the list of supported cards
                use -soundhw all to enable all of them
-usb            enable the USB driver (will be the default soon)
-usbdevice name add the host or guest USB device 'name'
-device driver[,prop[=value][,...]]
                add device (based on driver)
                prop=value,... sets driver properties
                use -device ? to print all possible drivers
                use -device driver,? to print all possible properties
File system options:
-fsdev local,id=id,path=path,security_model=[mapped|passthrough|none]
Virtual File system pass-through options:
-virtfs local,path=path,mount_tag=tag,security_model=[mapped|passthrough|none]

-name string1[,process=string2]
                set the name of the guest
                string1 sets the window title and string2 the process name (on 
-uuid %08x-%04x-%04x-%04x-%012x
                specify machine UUID

Display options:
-nographic      disable graphical output and redirect serial I/Os to console
-curses         use a curses/ncurses interface instead of SDL
-no-frame       open SDL window without a frame and window decorations
-alt-grab       use Ctrl-Alt-Shift to grab mouse (instead of Ctrl-Alt)
-ctrl-grab      use Right-Ctrl to grab mouse (instead of Ctrl-Alt)
-no-quit        disable SDL window close capability
-sdl            enable SDL
-spice <args>   enable spice
-portrait       rotate graphical output 90 deg left (only PXA LCD)
-vga [std|cirrus|vmware|qxl|xenfb|none]
                select video card type
-full-screen    start in full screen
-g WxH[xDEPTH]  Set the initial graphical resolution and depth
-vnc display    start a VNC server on display

i386 target only:
-win2k-hack     use it when installing Windows 2000 to avoid a disk full bug
-no-fd-bootchk  disable boot signature checking for floppy disks
-no-acpi        disable ACPI
-no-hpet        disable HPET
-balloon none   disable balloon device
-balloon virtio[,addr=str]
                enable virtio balloon device (default)
-acpitable [sig=str][,rev=n][,oem_id=str][,oem_table_id=str][,oem_rev=n]
                ACPI table description
-smbios file=binary
                load SMBIOS entry from binary file
-smbios type=0[,vendor=str][,version=str][,date=str][,release=%d.%d]
                specify SMBIOS type 0 fields
-smbios type=1[,manufacturer=str][,product=str][,version=str][,serial=str]
                specify SMBIOS type 1 fields

Network options:
-net nic[,vlan=n][,macaddr=mac][,model=type][,name=str][,addr=str][,vectors=v]
                create a new Network Interface Card and connect it to VLAN 'n'
-net user[,vlan=n][,name=str][,net=addr[/mask]][,host=addr][,restrict=y|n]
                connect the user mode network stack to VLAN 'n', configure its
                DHCP server and enabled optional services
-net tap[,vlan=n][,name=str][,fd=h][,ifname=name][,script=file]
                connect the host TAP network interface to VLAN 'n' and use the
                network scripts 'file' (default=/etc/qemu-ifup)
                and 'dfile' (default=/etc/qemu-ifdown)
                use '[down]script=no' to disable script execution
                use 'fd=h' to connect to an already opened TAP interface
                use 'sndbuf=nbytes' to limit the size of the send buffer (the
                default is disabled 'sndbuf=0' to enable flow control set 
                use vnet_hdr=off to avoid enabling the IFF_VNET_HDR tap flag
                use vnet_hdr=on to make the lack of IFF_VNET_HDR support an 
error condition
                use vhost=on to enable experimental in kernel accelerator
                    (only has effect for virtio guests which use MSIX)
                use vhostforce=on to force vhost on for non-MSIX virtio guests
                use 'vhostfd=h' to connect to an already opened vhost net 
-net socket[,vlan=n][,name=str][,fd=h][,listen=[host]:port]
                connect the vlan 'n' to another VLAN using a socket connection
-net socket[,vlan=n][,name=str][,fd=h][,mcast=maddr:port[,localaddr=addr]]
                connect the vlan 'n' to multicast maddr and port
                use 'localaddr=addr' to specify the host address to send 
packets from
-net vde[,vlan=n][,name=str][,sock=socketpath][,port=n][,group=groupname]
                connect the vlan 'n' to port 'n' of a vde switch running
                on host and listening for incoming connections on 
                Use group 'groupname' and mode 'octalmode' to change default
                ownership and permissions for communication port.
-net dump[,vlan=n][,file=f][,len=n]
                dump traffic on vlan 'n' to file 'f' (max n bytes per packet)
-net none       use it alone to have zero network devices. If no -net option
                is provided, the default is '-net nic -net user'
-netdev [user|tap|vde|socket],id=str[,option][,option][,...]

Character device options:
-chardev null,id=id[,mux=on|off]
-chardev socket,id=id[,host=host],port=host[,to=to][,ipv4][,ipv6][,nodelay]
         [,server][,nowait][,telnet][,mux=on|off] (tcp)
-chardev socket,id=id,path=path[,server][,nowait][,telnet],[mux=on|off] (unix)
-chardev udp,id=id[,host=host],port=port[,localaddr=localaddr]
-chardev msmouse,id=id[,mux=on|off]
-chardev vc,id=id[[,width=width][,height=height]][[,cols=cols][,rows=rows]]
-chardev file,id=id,path=path[,mux=on|off]
-chardev pipe,id=id,path=path[,mux=on|off]
-chardev pty,id=id[,mux=on|off]
-chardev stdio,id=id[,mux=on|off][,signal=on|off]
-chardev tty,id=id,path=path[,mux=on|off]
-chardev parport,id=id,path=path[,mux=on|off]

Bluetooth(R) options:
-bt hci,null    dumb bluetooth HCI - doesn't respond to commands
-bt hci,host[:id]
                use host's HCI with the given name
-bt hci[,vlan=n]
                emulate a standard HCI in virtual scatternet 'n'
-bt vhci[,vlan=n]
                add host computer to virtual scatternet 'n' using VHCI
-bt device:dev[,vlan=n]
                emulate a bluetooth device 'dev' in scatternet 'n'

Linux/Multiboot boot specific:
-kernel bzImage use 'bzImage' as kernel image
-append cmdline use 'cmdline' as kernel command line
-initrd file    use 'file' as initial ram disk

Debug/Expert options:
-serial dev     redirect the serial port to char device 'dev'
-parallel dev   redirect the parallel port to char device 'dev'
-monitor dev    redirect the monitor to char device 'dev'
-qmp dev        like -monitor but opens in 'control' mode
-mon chardev=[name][,mode=readline|control][,default]
-debugcon dev   redirect the debug console to char device 'dev'
-pidfile file   write PID to 'file'
-singlestep     always run in singlestep mode
-S              freeze CPU at startup (use 'c' to start execution)
-gdb dev        wait for gdb connection on 'dev'
-s              shorthand for -gdb tcp::1234
-d item1,...    output log to /tmp/qemu.log (use -d ? for a list of log items)
-hdachs c,h,s[,t]
                force hard disk 0 physical geometry and the optional BIOS
                translation (t=none or lba) (usually qemu can guess them)
-L path         set the directory for the BIOS, VGA BIOS and keymaps
-bios file      set the filename for the BIOS
-enable-kvm     enable KVM full virtualization support
-xen-domid id   specify xen guest domain id
-xen-create     create domain using xen hypercalls, bypassing xend
                warning: should not be used when xend is in use
-xen-attach     attach to existing xen domain
                xend will use this when starting qemu
-no-reboot      exit instead of rebooting
-no-shutdown    stop before shutdown
-loadvm [tag|id]
                start right away with a saved state (loadvm in monitor)
-daemonize      daemonize QEMU after initializing
-option-rom rom load a file, rom, into the option ROM space
-clock          force the use of the given methods for timer alarm.
                To see what timers are available use -clock ?
-rtc [base=utc|localtime|date][,clock=host|vm][,driftfix=none|slew]
                set the RTC base and clock, enable drift fix for clock ticks 
(x86 only)
-icount [N|auto]
                enable virtual instruction counter with 2^N clock ticks per
-watchdog i6300esb|ib700
                enable virtual hardware watchdog [default=none]
-watchdog-action reset|shutdown|poweroff|pause|debug|none
                action when watchdog fires [default=reset]
-echr chr       set terminal escape character instead of ctrl-a
-virtioconsole c
                set virtio console
-show-cursor    show cursor
-tb-size n      set TB size
-incoming p     prepare for incoming migration, listen on port p
-nodefaults     don't create default devices
-chroot dir     chroot to dir just before starting the VM
-runas user     change to user id user just before starting the VM
-prom-env variable=value
                set OpenBIOS nvram variables
-semihosting    semihosting mode
-old-param      old param mode
-readconfig <file>
-writeconfig <file>
                read/write config file
                do not load default config files at startup

During emulation, the following keys are useful:
ctrl-alt-f      toggle full screen
ctrl-alt-n      switch to virtual console 'n'
ctrl-alt        toggle mouse and keyboard grab

When using -nographic, press 'ctrl-a h' to get some help.

More information about the virt-tools-list mailing list