1。 首先,确保主机支持 virtualization:
cat /proc/cpuinfo | grep -E "vmx|svm"
如果有输出,说明支持。
1。配置好 qemu,(加上 enable-kvm):
./configure --target-list=arm-softmmu,mipsel-softmmu --enable-debug --enable-sdl --enable-gtk --enable-kvm
3. 查看相关模块是否加载:
~$ lsmod | grep kvm
kvm_intel 132651 0
kvm 388310 1 kvm_intel
如果有上面的输出,是可以用的。
同时 /dev/kvm 应该被创建。QEMU里有类似下面的代码:
open("/dev/kvm")
ioctl(KVM_CREATE_VM)
ioctl(KVM_CREATE_VCPU)
for (;;) {
ioctl(KVM_RUN)
switch (exit_reason) {
case KVM_EXIT_IO: /* ... */
case KVM_EXIT_HLT: /* ... */
}
}
我第一尝试的时候,看不到 /dev/kvm, lsmod的时候,只看到有 kvm.ko 加载进来。手动加载 kvm_intel.ko的时候,提示
insmod: ERROR: could not insert module ./kernel/arch/x86/kvm/kvm-intel.ko: Operation not supported
然后,看一下 dmesg |tail,发现:
[ 1870.982716] kvm: disabled by bios
[ 1888.957189] kvm: disabled by bios
[ 1906.551801] kvm: disabled by bios
[ 1919.617650] has_svm: not amd
[ 1919.617653] kvm: no hardware support
原来是在 BIOS里把 virtualization禁掉了。
进入 BIOS,打开之后,一切都正常了。