简单的活着

kvmi

Posted on By Mista Cai

kvmi

nitro已经不再维护,作者维护的是kvmi分支!过分呀

git clone https://github.com/KVM-VMI/kvm-vmi.git --recursive --branch kvmi

该项目主要贡献是提供的接口,API overview

KVMI-Setup

保持与云端一致,

$ cd kvm-vmi
$ git checkout kvmi
$ git submodule update

KVM

4.20.0-rc7+

对配置文件的修改,

make menuconfig :: 源码根目录下生成 .config (没有会自动生成), .config中就是各个内核编译选项的选择状况.

make defconfig :: 根据当前系统的架构默认 .config 生成内核源码目录下的 .config (每个架构的配置文件: ex. arch/x86/configs/x86_64_defconfig)

make oldconfig :: 将已有的 .config 放到源码根目录下后执行, 目的是为了复用之前的内核编译选项的配置.

make xconfig :: 图形化配置, 需要qt3, 个人觉得没有必要, 有 make menuconfig 就足够了.

make localmodconfig :: 生成以正在使用的内核模块为对象的 .config

Qemu

2.11.93

Libvirt

sudo apt install libvirt-bin libvirt-dev bridge-utils virt-manager virt-viewer
  • 网桥管理工具bridge-utils

启动虚拟机

sudo virsh start win7x64

linux找不到动态链接库.so文件的解决方法

New handshake
[level=3]: failed to retrieve the protocol version (invalid authentication token?)

reference

使用Libvirt创建虚拟机

使用libvirt的xml配置文件创建虚拟机

libvirt虚拟机xml配置文件详解

kvmi-test

static void die(const char *msg)
  
static void reply_continue(void *dom, struct kvmi_dom_event *ev, void *_rpl, size_t rpl_size)
  
static int new_handshake(){
  打印 New handshake
}
static void log_cb(kvmi_log_level level, const char *s, void *ctx) {
  打印等级和错误信息
}

nitro

linux-4.9.0里面没有自动生成网桥virbr0

nat:virsh启动就会创建一个nat类型的网桥virbr0,这个网桥的配置信息在 cat /var/lib/libvirt/network/default.xml这里定义。如果定义nat类型的网络,直接关联这个网桥即可