精华内容
下载资源
问答
  • QEMU使用简介

    万次阅读 2017-02-22 19:58:53
    QEMU使用简介。

    下载

    在Ubuntu下直接通过apt命令来下载:

    apt-get install qemu
    apt install qemu

    不同的Ubuntu版本可能使用apt-get或者apt中的一个,本文使用的环境如下:

    本文主要介绍在该Ubuntu版本下的QEMU使用。

    使用

    安装QEMU之后,可以找到有如下的命令可用:

    可以看到它可以模拟很多种不同的架构。

    还有像qemu-img其实是一个工具,可以用来生成虚拟盘。

    为了使用QEMU来安装和使用额外的系统(这里还是一个Ubuntu16.04系统),首先需要的是创建一个虚拟硬盘,下面是具体的命令:

    参数说明:

    1. create:表示执行的动作是创建虚拟盘;
    2. -f qcow2:指定虚拟盘的格式;
    3. OS.img是虚拟盘的名称,大小是20G。

    之后开始安装系统,命令如下:

    qemu-system-x86_64 -boot d -cdrom ubuntu-16.04-desktop-amd64.iso -hda OS.img -m 2048 -bios OVMF.fd

    参数说明:

    1. qemu-system-x86_64命令是结合自己的电脑构架使用的,因为这边使用的是Intel x64平台;
    2. -boot d:表示从CDROM启动系统,因为虚拟盘中目前还没有系统,需要从CDROM中启动安装盘;
    3. -cdrom:指定了安装的系统镜像;
    4. -hda:指定之前创建的虚拟盘;
    5. -m:指定了QEMU使用的系统内存大小,这里指定的是2G;
    6. -bios:指定了QEMU运行的BIOS,默认使用的是seabios,这里使用了自己编译的OVMF.fd,至于如何生成OVMF.fd,可以参考其它的文章。

    之后就是普通的安装过程:

    不过这里会遇到一个问题,QEMU运行的速度及其慢,为了解决这个问题,可以使用KVM,它是内核层面对虚拟话的支持。

    这里首先需要下载qemu-kvm,命令如下:

    apt install qemu-kvm

    下载之后,使用kvm命令来启动QEMU,命令的参数还是一样,只是将qemu-system-x86_64换成了kvm:

    kvm -boot d -cdrom ubuntu-16.04-desktop-amd64.iso -hda OS.img -m 2048 -bios OVMF.fd

    使用KVM可以明显发现QEMU速度快了很多。

    安装结束之后使用如下的命令启动:

    kvm -bios OVMF.fd -hda OS.img -m 2048 -smp 4

    基本参数还是没有变,这里增加了一个-smp参数,是用来指定QEMU使用的核数的,这里指定的是4核,可以在系统启动之后通过cat /proc/cpuinfo来查看:

    实际上使用QEMU主要是为了调试OVMF.fd及它与OS的交互,因此这里再说下OVMF。

    前面在使用QEMU的时候都加上了-bios参数,指定了自己编译的OVMF.fd,此时启动的QEMU就可以进入到BIOS下:

    这里的FS0就存在与OS.img中,它用来存放启动系统的GRUB文件:

    也可以直接在这里执行grubx64.efi(其它几个efi也可以)来启动Ubuntu系统。

    一些常用的参数说明

    这里主要讲一些启动系统时可以使用的参数:

    1. -m x:用来指定虚拟系统的内存大小,x是一个数字,单位是MB;
    2. -bios x:用来指定使用的BIOS,默认使用的是seabios,也支持OVMF;
    3. -serial stdio:用来指定串口的输出,这里就是输出的标准输出;
    展开全文
  • qemu 使用

    千次阅读 2014-08-13 17:25:14
    1.手册 http://wiki.qemu.org/Manual ...git clone git://git.qemu.org/qemu.git ./configure --enable-kvm --target-list=i386-softmmu --enable-debug make 这样配置会编译出来qemu-system-i386

    1.手册

    http://wiki.qemu.org/Manual


    2.下载源代码

    git clone git://git.qemu.org/qemu.git

    ./configure --enable-kvm --target-list=i386-softmmu --enable-debug

    make

    这样配置会编译出来qemu-system-i386

    历史版本: http://qemu-project.org/index.php?title=Download&action=history


    3.试用 

    http://www.crashcourse.ca/wiki/index.php/QEMU

    这个网页让我们了解什么是qemu,一起最基本的让我试用一下。看看究竟qemu是什么。


    qemu分成两个部分:

    user mode emulation  which allows you to run a simple cross-compiled executable, and

    full system emulation which emulates a full system including the corresponding hard disk image.


    使用 -M 选项查看支持哪种体系结构

    $ qemu-system-arm -M ?
    Supported machines are:
    integratorcp ARM Integrator/CP (ARM926EJ-S) (default)
    versatilepb ARM Versatile/PB (ARM926EJ-S)
    versatileab ARM Versatile/AB (ARM926EJ-S)
    realview   ARM RealView Emulation Baseboard (ARM926EJ-S)
    akita      Akita PDA (PXA270)
    spitz      Spitz PDA (PXA270)
    borzoi     Borzoi PDA (PXA270)
    terrier    Terrier PDA (PXA270)
    cheetah    Palm Tungsten|E aka. Cheetah PDA (OMAP310)
    lm3s811evb Stellaris LM3S811EVB
    lm3s6965evb Stellaris LM3S6965EVB
    connex     Gumstix Connex (PXA255)
    verdex     Gumstix Verdex (PXA270)
    mainstone  Mainstone II (PXA27x)


    在这个页面http://wiki.qemu.org/Download上,列出了几个试用的版本。  比如

    http://wiki.qemu.org/download/linux-user-test-0.3.tar.gz   这个是一个用户态程序的测试版本。 

        包括了各个平台上的应用程序和所需要的库文件。 值得一看。

    http://wiki.qemu.org/download/arm-test-0.2.tar.gz    这是一个系统级的 arm结构的测试版本。 

       包括了一个arm的kernel 和  initrd。 值得学习。

    http://wiki.qemu.org/download/linux-0.2.img.bz2    这是一个linux 2.6.20的磁盘映像。

       直接下载下来,解压缩  qemu linux-0.2.img 就可以运行了。 我很好奇,这个跟体系结构没有关系么?

       file 了一下,这个是个x86的boot sector. 应该是跟体系结构相关的。 有待证实。

       mount linux-0.2.img /tmp -o loop 进去看了一下,所有的可执行文件也是intel的。 那就应该是x86的了。

       如何访问虚拟盘 请看 下面的 qemu image

    更多一些已经打包好的debian的image可以在这里找到 http://people.debian.org/~aurel32/qemu/


    4.qemu image 使用

    http://en.wikibooks.org/wiki/QEMU/Images

    在host上查看guest的image

    对于raw格式的磁盘映像,可以用 loopback 设备挂载到主机上。

    挂载没有分驱的映像

        mount -o loop linux-0.2.img /tmp

    挂在有分驱的映像

        mount -o loop,offset=32256 ubuntu.img /tmp


    对于非raw格式的映像,是不能直接mount的。

    对于qemu disk image,可以用到 nbd 模块来mount。  关于nbd可以参考 http://en.wikipedia.org/wiki/Network_block_device

    modprobe nbd max_part=16
    qemu-nbd -c /dev/nbd0 image.qcow2
    partprobe /dev/nbd0
    mount /dev/nbd0p1 /mnt/image

    好了,这样可以在/mnt/image 目录中查看文件了。


    查看映像文件的信息,格式,大小,用qemu-img info命令

    $ qemu-img info test.vmdk
    (VMDK) image open: flags=0x2 filename=test.vmdk
    image: test.vmdk
    file format: vmdk
    virtual size: 20M (20971520 bytes)
    disk size: 17M



    创建guest image

    qemu-img create [-f fmt] [-o options] filename [size]

    fmt 可以有, raw, qcow2, host_device


    5.qemu network

    http://en.wikibooks.org/wiki/QEMU/Networking

    Qemu提供了三种连接的网络方式。

    User Mode Networking

    kvm -drive file=ubuntu.img -boot dc -m 512  -monitor stdio -netdev user,id=usernet -device rtl8139,netdev=usernet

    分配地址的情况

    user mode默认的情况,或者用 -net user来指定。

    The guest OS will see an E1000 NIC with a virtual DHCP server on 10.0.2.2 and will be allocated an address starting from 10.0.2.15. A virtual DNS server will be accessible on 10.0.2.3, and a virtual SAMBA file server (if present) will be accessible on 10.0.2.4 allowing you to access files on the host via SAMBA file shares.

    但是这个samba的ip地址,我没有弄明白。


    有一点比较重要的是,guest中怎么看得到host。

    默认的情况下,host的地址是10.0.2.2, 这个地址也是可以改的。 可以用 -net user,host=addr 来改。


    端口映射

    将guest中的某个端口映射到host

    -redir tcp:5555::8080

    上面这个选项可以将guest中的8080端口映射到主机的5555


    Tap interface(guest on a bridge)

    sudo tunctl -t tap0

    sudo brctl addif virbr0 tap0

    sudo ifconfig tap0 0.0.0.0 up

    sudo kvm -drive file=ubuntu.img -boot dc -m 512  -monitor stdio -netdev tap,id=tapnet,ifname=tap0,script=no -device rtl8139,netdev=tapnet,mac=96:83:DA:A0:06:34


    然后进到guest,配置eth0为virtbr0同一网段地址。 添加默认路由。

    ifconfig eth0 192.168.122.25

    route add default gw 192.168.122.1

    这样就可以和主机通信了。


    记得在host上打开ip_forward...

    echo 1 > /proc/sys/net/ipv4/ip_forward


    但是要和外界通信,还要添加iptable规则。 我添加了如下两条。

    iptables -t nat -A POSTROUTING  -o wlan0 -j MASQUERADE

    iptables -A FORWARD -i wlan0 -j ACCEPT


    最后需要在guest中添加dns server。

    这个就直接拷贝host上的 /etc/resolv.conf文件就好了。


    另外, 如果在bridge上有两台机器, 那么要指定mac地址,且不一样。 

    否则在ARP解析的时候,会出现问题。

    其实这个应该要设置成不一样的,否则的话在别的情况下也会发生问题。


    增加一条host的iptable,可以导出guest的服务。

    iptables -t nat -A PREROUTING -p tcp --dport 80 -j DNAT --to-destination 192.168.122.25

       --dport  80     这个是对外的服务端口

       192.168.122.25  这个是虚拟机的地址


    或者

    iptables -t nat -A PREROUTING -p tcp -i eth0 --dport 80 -j DNAT --to-destination 192.168.122.25

    多加个-i eth0表示只处理从eth0进入的包。


    再加一条iptable rule 可以让host在自己机器上访问 http://9.123.254.131

    iptables -t nat -A OUTPUT -d 9.123.245.131 -p tcp --dport 80 -j DNAT --to-destination 192.168.122.25

    需要进一步学习


    Tap interface(guest on a tap, nat directly)

    sudo tunctl -t tap0

    sudo ifconfig tap0 172.16.0.1 up

    sudo kvm -drive file=ubuntu.img -boot dc -m 512 -monitor stdio -netdev tap,id=tapnet,ifname=tap0,script=no -device rtl8139,netdev=tapnet,mac=96:83:DA:A0:06:34


    进入guest

    ifconfig eth0 172.16.0.2 up

    route add default gw 172.16.0.1


    最后在host上添加nat

    iptables -t nat -A POSTROUTING -o wlan0 -j MASQUERADE


    Tap Interface(bridged)

    这种方式比较特殊,整个guest完全暴露在网络里了。

    在ubuntu中的配置方式如下:

    # cat /etc/network/interfaces

    auto wlan0

    auto lo
    iface lo inet loopback

    auto eth0
    iface eth0 inet manual

    auto br0
    iface br0 inet dhcp
            bridge_ports eth0
            bridge_stp   off
            bridge_fd    0
            bridge_maxwait 0


    在guest中的ubuntu如下配置

    auto lo

    iface lo inet loopback


    auto eth0

    iface eth0 inet dhcp



    6.配置samba以使host和guest之间用samba通信

    首先在host上创建samba服务。 在linux上,可以修改 /etc/samba/smb.conf,增加

    [qemu]
       comment = Windows file space
       path = /mnt/windows
       read only = no
       public = yes

    path 指定了需要共享的路径。


    进入guest , mount这个samba目录

    mount -t cifs -o username=qemu,ip=10.0.2.2 //10.0.2.2/qemu shared

    10.0.2.2 是默认的guest中看到的host的地址。


    但是这个页面http://en.wikibooks.org/wiki/QEMU/Networking#SMB_server 所说的-smb 选项,我不知道怎么用。


    7.Qemu 的 monitor

    qemu 提供一个monitor 来做控制

    可以用Ctrl+Alt+2 来显示,或者在启动的时候 加上 -monitor stdio 可以直接在terminal上来操作。


    或者用 -monitor telnet:localhost:5432,server,nowait 来定向到一个telnet口。


    在nographic模式下 用

    C-a c 在monitor之间切换


    在host中输出guest中的console

    qemu命令行的配置 。

    /home/richard/git/qemu/i386-softmmu/qemu-system-i386  -drive file=ubuntu.img -boot dc -monitor stdio -kernel /home/richard/git/linux-2.6/build/arch/x86/boot/bzImage -append "root=/dev/sda1 rw console=ttyS0,115200n8" -enable-kvm -serial telnet:localhost:4321,server,nowait


    出了qemu的配置, 要输出,还要在guest中配置。

    要在ubuntu上配置,可以参考 http://blog.csdn.net/richardysteven/article/details/5524639


    8.Tips

    申请磁盘kvm-img create ubuntu.img 10G

    安装kvm -drive file=ubuntu.img -cdrom ubuntu-11.04-desktop-i386.iso -boot d -m 512

    运行kvm -drive file=ubuntu.img -boot dc -m 512


    上面是个简单的例子,现在写几个稍微复杂点的。

    1. 安装ubuntu

    ../git/qemu/i386-softmmu/qemu-system-i386 -hda ubuntu.img -cdrom /media/XP/ubuntu.iso -boot dc -m 1024 -vnc :1

    -hda指定了disk image

    -vnc 指定了 vnc的端口


    2. 启动指定的kernel 并且调试

    ./qemu-system-i386 -kernel ../../linux-2.6/arch/x86/boot/bzImage -initrd /boot/initrd.img-3.1.0-rc1+ -append "root=/dev/sda ro" -boot c -m 512 -hda ../disk.img -vnc :2 -S -s

    -kernel 指定kernel的elf文件

    -initrd 指定了initrd, 这个使用mkinitramfs作出来的

    -append 添加boot的命令,这个是说明用的是/dev/sda作为根,有时候需要指定为/dev/sda1


    3. 使用kickstart文件进行自动安装

    制作iso文件

    mkisofs -o ks.iso ks.cfg

    这个iso只包含了一个ks.cfg文件。


    用mount -o loop ks.iso /tmp 可以查看制作是不是成功。


    kvm  -drive file=rhel.img -drive file=RHEL6.1-20110510.1-Server-x86_64-DVD1.iso,media=cdrom,index=1 -drive file=ks.iso,media=cdrom,index=2  -kernel vmlinuz -initrd initrd.img -append 

    在append后,加上ks的标识。

    具体格式可以看http://fedoraproject.org/wiki/Anaconda/Kickstart#Boot_Diskette

    其中有一个option指定了用哪个网络接口去读取ks文件, ksdevice。


    下面是两个例子

     -append console=hvc0 ks=cdrom:/rhel6_ks.cfg

    上面的命令中 kickstart的脚本文件在 rhel6_ks.iso这个镜像中的根目录下,叫rhel6_ks.cfg。 用 -append kernel命令来指定。


     -append console=hvc0 ks=http://ford11.ltc.austin.ibm.com/POWER_KVM_test/rhel6/rhel6_ks.cfg RHEL6_install.img

    这个命令也是用kickstart脚本文件来实现自动安装的。 不过这个kickstart文件在一个webserver上。


    展开全文
  • Qemu使用手册

    2016-09-25 11:16:38
    Qemu使用手册
  • QEMU使用教程

    2013-12-27 19:49:44
    QEMU使用教程,详细指示了QEMU在不同操作系统中的环境搭建与使用
  • QEMU使用笔记.pdf

    2021-09-13 15:36:21
    QEMU使用笔记.pdf
  • Qemu使用手册中文版

    2018-06-07 12:37:04
    Qemu使用手册中文版,安装以及使用详细教程,命令详解
  • 龙芯qemu使用

    千次阅读 2020-03-20 17:46:59
    龙芯qemu使用 以龙芯ls2k1000 处理器为例,用qemu启动pmon和内核 1)获取qemu git clone https://gitee.com/martinqiao/qemu.git 然后执行: ① cd qemu ② mkdir build ③ cd build/ ④ ../configure --t arget...

    龙芯qemu使用

    以龙芯ls2k1000 处理器为例,用qemu启动pmon和内核

    1、获取qemu

    git clone  https://gitee.com/martinqiao/qemu.git
    

    然后执行:

    cd qemu
    mkdir build
    cd build/
    ../configure --t	arget-list=mipsel-softmmu,mips64el-softmmu --disable-werror
    make
    

    2、qemu启动pmon

    ./mips64el-softmmu/qemu-system-mips64el -M ls2k -m 256  -smp 1  -serial stdio -bios /home/tftpboot/gzrom.bin
    

    3、qemu启动kernel

    创建执行脚本boot.sh,内容如下:

    #!/bin/bash
    
    #QVER=loongson-v1.0
    #Based on v3.10
    #KVER=loongnix-release-1903
    #RVER=2016.05
    #Minimal memory for boot is 256M, but with graphic, 1024M is required
    MEM=1024M
    
    #maxcpus=1 must be passed to not hang at booting
    #Booting CPU#1...
    #[    0.150000] CPU#1, func_pc=ffffffff80da1c7c, sp=980000000c0f3eb0, gp=980000000c0f0000
    #[    0.256000] random: fast init done
    
    #Graphic boot or not, 1 for graphic, 0 for serial
    G=0
    if [ $G -eq 1 ]; then
      CONSOLE=tty0
      GOPT=
    else
      GOPT=-nographic
      CONSOLE=ttyS0
    fi
    
    ./mips64el-softmmu/qemu-system-mips64el -M ls2k -m $MEM -smp 1 -no-reboot $GOPT \
    	-bios	./gzrom.bin \
    	-kernel	/home/tftpboot/vmlinuz \
    	-initrd	/home/tftpboot/initrd-2k.gz \
    	-dtb  	/home/tftpboot/LS2K.dtb \
    	-append "root=/dev/ram0 console=$CONSOLE maxcpus=1" \
    #-device usb-mouse -device usb-kbd -show-cursor \
    	#-net nic,model=synopgmac -net tap
    

    参数说明
    -h:帮助
    -version:查看版本
    -M:指定开发板
    -m:指定内存大小
    -smp:cpu个数
    -kernel:指定内核文件
    -dtb:指定dtb文件
    -nographic:指定不需要图形界面
    -initrd file:使用“file"作为初始化的RAM磁盘
    -append:cmdline内核命令行
    -serial=serial:给设备指定序列号(可能是串口,也可能和串口无关)

    展开全文
  • qemu使用实例和常用参数.pdf
  • QEMU使用手册

    2018-02-03 08:05:55
    QEMU是一套由法布里斯·贝拉(Fabrice Bellard)所编写的以GPL许可证分发源码的模拟处理器,在GNU/Linux平台上使用广泛。Bochs,PearPC等与其类似,但不具备其许多特性,比如高速度及跨平台的特性,通过KQEMU这个闭源...
  • qemu使用PCI passthrough设备

    万次阅读 2017-02-14 23:18:06
    qemu使用vfio pci设备

    为了提高虚拟机中的io吞吐量业界现在采用的方式就是直接将物理设备给虚拟机直接使用。

    方式上有两种

    • pci assign
    • vfio

    不过现在业界已经基本都采用vfio的方式了。主要是因为在vfio方式下对虚拟设备的权限和dma隔离上做的更好。但是这么做也有个缺点,这个物理设备在主机和其他虚拟机都不能使用了。

    qemu直接使用物理设备本身命令行是很简单的,关键在于事先在主机上对系统、内核和物理设备的一些配置。

    最后执行的qemu命令行

    先来看一下系统都配置完成后要执行的命令,是不是很简单~

    qemu-system-x86_64 -m 4096 -smp 4 --enable-kvm \
    -drive file=~/guest/fedora.img \
    -device vfio-pci,host=0000:00:01.0

    单纯从qemu的命令行来看,其实和普通虚拟机启动就差了最后那个-device的选项。这个选项也比较容易理解,就是把主机上的设备0000:00:01.0传给了虚拟机使用。

    系统及硬件准备

    BIOS中打开IOMMU

    设备直通在x86平台上需要打开iommu功能。这是Intel虚拟技术VT-d(Virtualization Technology for Device IO)中的一个部分。有时候这部分的功能没有被打开。

    打开的方式在BIOS设置中Security->Virtualization->VT-d这个位置。当然不同的BIOS位置可能会略有不同。记得在使用直通设备前要将这个选项打开。

    内核配置勾选IOMMU

    对应的在内核编译过程中需要勾选IOMMU的功能。在menuconfig中有这样的显示。

    INTEL_IOMMU
    │ Location: │
    │ -> Device Drivers │
    │ (2) -> IOMMU Hardware Support (IOMMU_SUPPORT [=y])

    如果你看到内核编译选项INTEL_IOMMU被设置为y,则表明已经配置成功。

    内核启动参数enable IOMMU

    BIOS中打开,内核编译选项勾选还不够。还需要在引导程序中添加上内核启动参数 intel_iommu=on.

    具体位置和使用的引导程序相关,请自行根据你使用的引导程序配置。

    确认IOMMU功能确实打开

    所有的准备工作做完,重启主机后为了保证一切无误,可以采用如下方法检查是否已经enable了IOMMU.

    dmesg | grep -e DMAR -e IOMMU

    如果能搜索到

    DMAR: IOMMU enabled

    表示上述配置成功。

    VFIO相关模块配置

    vfio的相关配置选项

    在x86平台,设备直通需要使用内核中vfio相关的模块。随意要确保内核配置选项中,相关的模块已编译。

    相关的选项有

    • VFIO
    • VFIO-PCI
    • VFIO_IOMMU_TYPE1

    加载并确认vfio相关模块已经加载

    如果上述选项设置是built-in的,那就不需要加载了。如果是模块的话,那需要加载并且这样还能确认是否选项勾选正确。

    加载的命令:

    modprobe vfio
    mod prove vfio-pci

    查看是否加载成功的命令是:

    $ lsmod | grep vfio
    vfio_pci               45056  0
    vfio_virqfd            16384  1 vfio_pci
    vfio_iommu_type1       20480  0
    vfio                   28672  2 vfio_iommu_type1,vfio_pci
    irqbypass              16384  2 kvm,vfio_pci

    如果没有看到相关的模块加载,就需要重复上一个步骤重新配置并编译。

    设备配置

    使能VF (可选)

    不算背景知识的背景

    这里得先插播一个广告了,VF字面上的理解就是虚拟设备。实际上是通过硬件和软件手段,使得同样的一个物理设备在系统上可以展现出多个逻辑设备。举一个不恰当的例子,就好像西游记里的孙悟空,碰到妖怪太多可以拔两根毫毛变换出多个和自己一模一样的齐天大圣来。

    然而这毕竟是一个高级功能
    * 首先是要硬件本身支持,就好像这高级本事要孙悟空级别的人物才有
    * 其次我们用的时候需要使能,就好像孙悟空平时也就是一个真身

    有兴趣的同学可以搜索SRIOV关键字去找相关资料,不过感觉网上对这个的解释非常少。如果希望再深入理解的话,恐怕要找SRIOV的规范来看了。我在这里尽量用通俗的语言解释。

    现在使能某个设备的VF已经变得很简单了,找到带有SRIOV功能的设备,向其驱动中sysfs的某个文件echo你想要使能的VF个数即可。这里还要强调一下,被直通的设备可以是VF(virtual function),也可以是PF(physical function)。PF就好像是孙悟空的那个真身,而VF则是他毫毛的化身,这两个概念正好是对应的。但是一旦直通了PF给某个虚拟机,他就不能使用VF功能了。就好像如果孙悟空的真身去了另一个世界,他在这个世界的法力(化身)也就消失了。

    自己都感觉说的有点绕,没看懂没有关系,按照下面的步骤直接操作即可~

    找到PF

    # lspci -vvv | grep "Single"

    如果能找到,则表示系统中有PF,否则没有PF就不能使能VF。
    记住拥有这个属性的PCI设备编号,假设编号为0000:00:01.0。

    使能VF

    自从有了sysfs接口,使能VF变得简洁多了。方法就是向需要使能的PF设备的sysfs文件写入一个需要使能的VF个数。

    假设PF的设备编号为0000:00:01.0, 想要使能10个VF

    echo 10 > /sys/bus/pci/devices/0000:00:01.0/sriov_numvfs

    是不是很简单。

    确认使能成功

    一般情况下VF的设备名会带有”Virtual Function”字样,所以通过搜索lspci的输出可以确认是否使能成功。

    lspci | grep "Virtual Function"

    如果相对于使能前多出了相同指定个数的pci设备,则表示使能成功。

    找到同一iommu group上所有设备

    接下来的几个小节适用于所有的想要直通给虚拟机的pci设备,不管是PF还是VF,都需要如此操作。

    • 首先是找到目标设备所在的iommu group
    • 然后将同一个组的所有设备都卸载原有驱动并绑定到vfio-pci驱动上。

    找同一个组的设备也是通过sysfs

    ls /sys/bus/pci/devices/0000:00:01.0/iommu_group/devices

    这样就会列出这个组下所有的设备~

    解绑定原有驱动

    找到了同一个组下的设备,需要一一对设备做解绑定驱动的操作。

    echo 0000:00:01.0 > /sys/bus/pci/devices/0000:00:01.0/driver/unbind

    绑定vfio-pci驱动

    绑定驱动和解绑定的操作类似,但是多了一个获取设备厂商号和型号的动作。

    先获取设备厂商号和型号

    lspci -ns 0000:00:01.0
    00:02.0 0300: 8086:0412 (rev 06)

    再绑定

    echo 8086 0412 > /sys/bus/pci/drivers/vfio-pci/new_id

    大功告成~现在你就可以执行最开始的那段代码运行带有直通设备的虚拟机了~

    展开全文
  • qemu使用文档

    2015-07-09 03:33:19
    Qemu功能强大,但不易上手,该文档就是为这些人准备的
  • Qemu使用心得

    2018-06-22 18:43:22
    使用Qemu的心得体会如下:(1)在QEMU源码中增加自己的.c实现,编译后出现很多个错误如:“error: storage class specified for parameter”。其实只要在实现的.c文件最前面加上如下头文件就可以了:#include "...
  • qemu使用实例和常用参数

    千次阅读 2017-11-04 21:24:06
    =========================qemu使用实例参数详解========================= qemu.exe -kernel-kqemu -L . -m 512 -hda f:\system-virtual\windowsxp\windowsxp.vmdk -cdrom  e:\my-lab\iso\windowsxp-en.iso -...
  • QEMU使用上手

    2015-03-18 19:59:34
    使用qemu可以直接运行其他平台的用户态软件,这个称为用户态模式;qemu同时能够仿真(虚拟化)一个CPU的执行环境以运行OS级别的软件,这个称为系统模式。后面讨论只关注qemu的系统模式。qemu最为大家熟知的还
  • QEMU使用笔记

    千次阅读 2007-09-03 20:52:00
    <!... margin: 2cm } P { margin-bottom: 0.21cm } --> QEMU使用笔记 转载时请注明出处和作者联系方式 作者联系方式:李先静 那台跟了我四年多的老电脑,终于经不住深圳酷热的天气,在一个炎
  • qemu使用教程.pdf

    2011-11-12 09:05:20
    qemu入门,精简有用。 QEMU是一套由Fabrice Bellard所编写的模拟处理器的自由软件。它与Bochs,PearPC近似,但其具有某些后两者所不具备的特性,如高速度及跨平台的特性。经由kqemu这个开源的加速器,QEMU能模拟至...
  • GNS3 qemu使用完整教程

    2011-11-28 21:51:44
    GNS3使用Qemu模拟PC,防火墙,IPS教程
  • ubuntu下qemu使用:图文详解

    千次阅读 2020-03-16 15:15:16
    1、qemu安装 以ubuntu为例,执行(更换国内源请参考Ubuntu更换源) sudo apt install -y qemu 如果安装失败执行 sudo apt install -f sudo apt install -y qemu 2、qemu能模拟的平台 安装完成后在Terminal...
  • qemu 使用说明

    2011-06-12 13:32:00
    qemu 虚拟机使用说明#qemu-img create windows.img 2G #这个就是创建虚拟机磁盘,2G大小#qemu -hda windows.img -cdrom /dev/acd0 -boot d -m 512 -enable-audio -localtime-hda 是指定硬盘-cdrom 指定使用光驱,这...
  • #0 0x00005555557cf6bd in qemu_co_queue_run_restart (co=0x555556d70a50) at qemu-coroutine-lock.c:66 #1 0x00005555557d036b in coroutine_swap (from=0x5555569ae5c0, to=0x555556d70a50) at qemu-coroutine.c:...
  • qemu 使用方法

    千次阅读 2009-10-16 13:57:00
    qemu 虚拟机使用说明#qemu-img create windows.img 2G #这个就是创建虚拟机磁盘,2G大小#qemu -hda windows.img -cdrom /dev/acd0 -boot d -m 512 -enable-audio -localtime-hda 是指定硬盘-cdrom 指定使用光驱,这...
  • qemu使用中遇到的问题

    千次阅读 2016-02-26 14:30:06
    1.使用chroot ./ ./qemu-mipsel ./usr/sbin/httpd时报错:chroot: failed to run command `./qemu-mipsel': No such file or directory 解决方法:需要使用qemu-mipsel-static才可以。首先安装apt-get install qemu...
  • 使用者模式:QEMU能启动哪些为不同中央处理器比那一的Linux程序 大端QEMU-MIPS和小端QEMU-MIPSEL 命令格式为"qemu-mipsel [options] program [arguments...]" "program"是需要QEMU运行的其他处理器编译的...
  • qemu是一种非常高效的模拟器,对各种平台的支持也很好
  • 这是一篇《使用qemu搭建linux内核开发环境详细教程》的续篇。需要合起来看 之前总结了一篇使用qemu搭建内核实验环境的文章,既然环境搭建起来了,那么就要用起来。跟踪内核代码,去实时看内核的走向,一直是一个不...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 55,348
精华内容 22,139
关键字:

qemu使用