Can't(?) disable default floppy drive any more in qemu 6.0

Bug #1923663 reported by Adam Williamson
6
This bug affects 1 person
Affects Status Importance Assigned to Milestone
QEMU
Expired
Undecided
Unassigned

Bug Description

There's a documented change in qemu 6.0:

https://qemu-project.gitlab.io/qemu/system/removed-features.html#floppy-controllers-drive-properties-removed-in-6-0

where you can't configure floppy controller device properties with -global any more. However, there's a thing you could do with the old parameter which I can't figure out a way to do with the documented replacement. openQA passed exactly this argument:

-global isa-fdc.driveA=

and that has the effect of removing/disabling the default floppy drive/controller. If you just run `qemu-system-i686` (no other args) you'll see the VM briefly try to boot from a floppy drive; if you run `qemu-system-i686 -global isa-fdc.driveA=` (with an earlier version of qemu, obviously) you'll see it does not do so.

I can't see a way to do this with `-device floppy`. Going by the docs, the equivalent should be:

-device floppy,unit=0,drive=

but that does not seem to have the same effect. If you run `qemu-system-i686 -device floppy,unit=0,drive=`, it still tries to boot from a floppy drive.

I see there's a -nodefaults option that disables *all* default devices, but I don't think that's what we want here either. We might want the other default devices, we just don't want the floppy drive.

Revision history for this message
Kashyap Chamarthy (kashyapc) wrote :

I see that Markus Armbruster has responded to the bug on 'qemu-devel' list here:
https://lists.nongnu.org/archive/html/qemu-devel/2021-04/msg02177.html

Not sure if you (Adam) have noticed, as I don't expect you to subscribe to 'qemu-devel'. So I'm copy/pasting the full comment from Markus here:

--------------------------------------------------------------------------
= Short answer =

In my opinion, management applications are better off with -nodefaults.
It's easier to understand than the complicated mess I'm going to
describe under "Long answer" below.

If you'd prefer not to, try -global isa-fdc.fdtypeA=none.

= Long answer =

-global isa-fdc.driveA= worked. Whether it was supported usage or
accidental dirt effect is unclear. Doesn't matter now.

-nodefaults suppresses a number of backends:

* Character device backend for a serial device

  Also suppressed when -serial ... or -device isa-serial,... or -global
  isa-serial.PROP=VAL is given, or the machine type opts out of this
  backend.

  Backend configuration depends on other options; too complicated to
  explain here.

* Character device backend for a parallel device

  Also suppressed when -parallel ... or -device isa-parallel,... or
  -global isa-parallel.PROP=VAL is given, or the machine type opts out
  of this backend.

  Backend configuration depends on other options; too complicated to
  explain here.

* Block device backend a floppy device

  Also suppressed when -device isa-fdc,... or -global isa-fdc.PROP=VAL
  or -device floppy or -global floppy.PROP=VAL is given, or the machine
  type opts out of this backend.

* Block device backend a CD-ROM device

  Also suppressed when -device {ide,scsi}-{cd,hd},... or -global
  {ide,scsi}-{cd,hd}.PROP=VAL is given, or the machine type opts out of
  this backend.

* SD card

  Also suppressed when the machine type opts out of this backend.

When a backend exists, the machine type may

* Create a frontend (a.k.a. device model) connected to the backend

* Ignore the backend silently

* Complain about the useless backend

-nodefaults additionally suppresses:

* Default HMP monitor

  Also suppressed when -monitor or -qmp or -qmp-pretty or -mon or
  -serial mon:... or -parallel mon:... is given.

  Monitor configuration depends on other options; too complicated to
  explain here.

* Default network frontend (-net nic) and backend (-net user)

  Also suppressed when -netdev or -nic or -net is given.

  Default backend is only done when we have SLIRP.

* Default VGA type, if any

  Actual type depends on the machine machine type. Set to "none" when
  -vga or -device DRV,... or -global DRV.PROP=VAL is given, where DRV is
  a VGA device model.

  When the type is not "none", the machine type may:

  * Create a device of that type

  * Ignore the type silently

  * Complain about the type

* Additional stuff depending on the machine type

Questions?
--------------------------------------------------------------------------

Revision history for this message
Peter Maydell (pmaydell) wrote : Re: [Bug 1923663] [NEW] Can't(?) disable default floppy drive any more in qemu 6.0

On Wed, 14 Apr 2021 at 08:07, Markus Armbruster <email address hidden> wrote:
> In my opinion, management applications are better off with -nodefaults.
> It's easier to understand than the complicated mess I'm going to
> describe under "Long answer" below.

Is there a mechanism to get QEMU to tell me "what are all the
long options I need to specify explicitly now to get the same
behaviour that I had before I started passing -nodefaults" ?
Otherwise it's a pretty painful route to suggest that people
go down (though I agree that for a management app as opposed to
an individual user it's probably a worthwhile route in the long
term).

-- PMM

Revision history for this message
Thomas Huth (th-huth) wrote : Moved bug report

This is an automated cleanup. This bug report has been moved to QEMU's
new bug tracker on gitlab.com and thus gets marked as 'expired' now.
Please continue with the discussion here:

 https://gitlab.com/qemu-project/qemu/-/issues/322

Changed in qemu:
status: New → Expired
To post a comment you must log in.
This report contains Public information  
Everyone can see this information.

Other bug subscribers

Remote bug watches

Bug watches keep track of this bug in other bug trackers.