All of lore.kernel.org
 help / color / mirror / Atom feed
From: Launchpad Bug Tracker <1799766@bugs.launchpad.net>
To: qemu-devel@nongnu.org
Subject: [Bug 1799766] Re: -device does not work as -drive do
Date: Sun, 20 Jun 2021 04:17:26 -0000	[thread overview]
Message-ID: <162416264691.7948.5132803928776909031.malone@loganberry.canonical.com> (raw)
In-Reply-To: 154040720342.20108.15765705817940864119.malonedeb@gac.canonical.com

[Expired for QEMU because there has been no activity for 60 days.]

** Changed in: qemu
       Status: Incomplete => Expired

-- 
You received this bug notification because you are a member of qemu-
devel-ml, which is subscribed to QEMU.
https://bugs.launchpad.net/bugs/1799766

Title:
  -device does not work as -drive do

Status in QEMU:
  Expired

Bug description:
  Copy/paste of https://stackoverflow.com/questions/52929723/qemu-eject-
  complains-device-is-not-found-while-it-is-there , since I found this
  bug trying to find an answer to an own question on Stack Overflow.

  Below, what was my question the answer I wrote, all exposes the bug.

  ====================================================================

  
  I need to eject a floppy from QEmu 3.0 monitor, but the command surprisingly fails complaining the device is not found, while it is really there.

  Listing of devices:

      (qemu) info block
      fda: dos-6-22/Dos622-1.img (raw)
          Attached to:      /machine/unattached/device[11]
          Removable device: not locked, tray closed
          Cache mode:       writeback

      hda: hda.img (raw)
          Attached to:      /machine/peripheral-anon/device[1]
          Cache mode:       writeback

  Eject command result:

      (qemu) eject fda
      Device 'fda' not found

  This is so although this documentation says this is how I have to do:
  https://www.linux-kvm.org/page/Change_cdrom (just that I want to eject
  the floppy instead of the CD‑ROM).

  The `change` command complains the same:

      (qemu) change fda dos-6-22/Dos622-2.img raw
      Device 'fda' not found

  Is this a bug or me doing something wrong?

  I tried using different node names, with always the same result.

  ====================================================================

  I’m posting as an answer, but I’m not strictly sure. I can just say,
  if I understand correctly, this is a bug.

  The answer comes in two parts.

  First part, is a stripped down failing invocation:

      qemu-system-i386 \
         -monitor stdio \
         -machine type=isapc,vmport=off \
         -blockdev driver=file,node-name=fda-img,filename=fda.img \
         -blockdev driver=raw,node-name=fda,file=fda-img \
         -global isa-fdc.driveA=fda

      (qemu) info block
      ide1-cd0: [not inserted]
          Attached to:      /machine/unattached/device[19]
          Removable device: not locked, tray closed

      sd0: [not inserted]
          Removable device: not locked, tray closed

      fda: fda.img (raw)
          Attached to:      /machine/unattached/device[13]
          Removable device: not locked, tray closed
          Cache mode:       writeback
      (qemu) eject fda
      Device 'fda' not found

  Second part, is the same without the last argument `-global isa-
  fdc.driveA=fda`:

      qemu-system-i386 \
         -monitor stdio \
         -machine type=isapc,vmport=off \
         -blockdev driver=file,node-name=fda-img,filename=fda.img \
         -blockdev driver=raw,node-name=fda,file=fda-img

      (qemu) info block
      ide1-cd0: [not inserted]
          Attached to:      /machine/unattached/device[19]
          Removable device: not locked, tray closed

      floppy0: [not inserted]
          Attached to:      /machine/unattached/device[13]
          Removable device: not locked, tray closed

      sd0: [not inserted]
          Removable device: not locked, tray closed
      (qemu) eject floppy0

  There is more error when `-global isa-fdc.driveA=fda` is removed.
  However, the documentation says:

  > -global driver=driver,property=property,value=value
  > Set default value of driver’s property prop to value, e.g.:

  > qemu-system-i386 -global ide-hd.physical_block_size=4096 disk-image.img
  > In particular, you can **use this to set driver properties for devices which are created automatically by the machine model**. To create a device which is not created automatically and set properties on it, use -device.

  > -global driver.prop=value is shorthand for -global
  driver=driver,property=prop,value=value. The longhand syntax works
  even when driver contains a dot.

  What I put a stress on in the quote, suggest I’m not misusing
  `-global` and that’s most probably a bug.

  **Update for more details:**

  It seems using `-drive` instead of `-device` and `driveA` assignment,
  the result is not the same, although RedHat documentation recommands
  using `-device` instead of `-drive` and QEmu 3.0 documentation says
  `-drive` is essentially a shortcut for `-device` (“essentially”, not
  telling about the difference).

  Below, two cases, with an except of `info block` and an excerpt of
  `info qtree`.

  With this one, `eject floppy0` works:

      qemu-system-i386 \
         -monitor stdio \
         -machine type=isapc,vmport=off \
         -drive format=raw,if=floppy,media=disk,file=fda.img \
         -device isa-vga,vgamem_mb=1 \
         -serial msmouse

      […]

      floppy0 (#block156): fda.img (raw)
          Attached to:      /machine/unattached/device[12]
          Removable device: not locked, tray closed
          Cache mode:       writeback

      […]

        dev: isa-fdc, id ""
          iobase = 1008 (0x3f0)
          irq = 6 (0x6)
          dma = 2 (0x2)
          driveA = ""
          driveB = ""
          check_media_rate = true
          fdtypeA = "auto"
          fdtypeB = "auto"
          fallback = "288"
          isa irq 6
          bus: floppy-bus.0
            type floppy-bus
            dev: floppy, id ""
              unit = 0 (0x0)
              drive = "floppy0"
              logical_block_size = 512 (0x200)
              physical_block_size = 512 (0x200)
              min_io_size = 0 (0x0)
              opt_io_size = 0 (0x0)
              discard_granularity = 4294967295 (0xffffffff)
              write-cache = "auto"
              share-rw = false
              drive-type = "144"

  With this one, `eject fda` does not work:

      qemu-system-i386 \
         -monitor stdio \
         -machine type=isapc,vmport=off \
         -blockdev driver=file,node-name=fda-img,filename=fda.img \
         -blockdev driver=raw,node-name=fda,file=fda-img \
         -global isa-fdc.driveA=fda \
         -device isa-vga,vgamem_mb=1 \
         -serial msmouse

      […]

      fda: fda.img (raw)
          Attached to:      /machine/unattached/device[12]
          Removable device: not locked, tray closed
          Cache mode:       writeback

      […]

        dev: isa-fdc, id ""
          iobase = 1008 (0x3f0)
          irq = 6 (0x6)
          dma = 2 (0x2)
          driveA = ""
          driveB = ""
          check_media_rate = true
          fdtypeA = "auto"
          fdtypeB = "auto"
          fallback = "288"
          isa irq 6
          bus: floppy-bus.0
            type floppy-bus
            dev: floppy, id ""
              unit = 0 (0x0)
              drive = "fda"
              logical_block_size = 512 (0x200)
              physical_block_size = 512 (0x200)
              min_io_size = 0 (0x0)
              opt_io_size = 0 (0x0)
              discard_granularity = 4294967295 (0xffffffff)
              write-cache = "auto"
              share-rw = false
              drive-type = "144"

To manage notifications about this bug go to:
https://bugs.launchpad.net/qemu/+bug/1799766/+subscriptions


      parent reply	other threads:[~2021-06-20  4:41 UTC|newest]

Thread overview: 5+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2018-10-24 18:53 [Qemu-devel] [Bug 1799766] [NEW] -device does not work as -drive do Hibou57 (Yannick Duchêne)
2018-10-25 15:46 ` [Qemu-devel] [Bug 1799766] " Max Reitz
2018-10-25 17:30 ` Hibou57 (Yannick Duchêne)
2021-04-20  8:08 ` Thomas Huth
2021-06-20  4:17 ` Launchpad Bug Tracker [this message]

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=162416264691.7948.5132803928776909031.malone@loganberry.canonical.com \
    --to=1799766@bugs.launchpad.net \
    --cc=qemu-devel@nongnu.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.