• P
    hw/arm/virt: Make block devices default to virtio · 4e2c0b2a
    Peter Maydell 提交于
    Now we have virtio-pci, we can make the virt board's default block
    device type be IF_VIRTIO. This allows users to use simplified
    command lines that don't have to explicitly create virtio-pci-blk
    devices; the -hda &c very short options now also work.
    
    This means we also need to set no_cdrom to avoid getting a
    default cdrom device -- this is needed because the virtio-blk
    device will fail if it is connected to a block backend with
    no media, which is what the default cdrom device typically is.
    Providing a cdrom with media via -cdrom will succeed, but silently
    create a device with non-removable medium. this is probably
    not really what the user wants, but is the best we can do now.
    
    Note that this change means that some command lines which used
    to work (by accident) will stop working. Where a drive was connected
    manually to a device but without 'if=none' being specified, we
    used to treat this as an IDE drive, which we would then not autoplug
    because the board doesn't support IDE. Now we will treat it as a
    virtio disk and autoplug it, which means the attempt to use the
    drive manually will fail:
      qemu-system-arm: -drive file=img.qcow2,id=foo: Drive 'foo' is already
      in use because it has been automatically connected to another device
      (did you need 'if=none' in the drive options?)
    The command line will have to be changed to include 'if=none', as the
    error message suggests.
    Signed-off-by: NPeter Maydell <peter.maydell@linaro.org>
    Reviewed-by: NMarkus Armbruster <armbru@redhat.com>
    Reviewed-by: NStefan Hajnoczi <stefanha@redhat.com>
    Message-id: 1435068107-12594-4-git-send-email-peter.maydell@linaro.org
    4e2c0b2a
virt.c 35.6 KB