qemu-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Qemu-devel] [5752] Fix media detection on emulated CDROM (Gary Grebus)


From: Anthony Liguori
Subject: [Qemu-devel] [5752] Fix media detection on emulated CDROM (Gary Grebus)
Date: Wed, 19 Nov 2008 15:03:36 +0000

Revision: 5752
          http://svn.sv.gnu.org/viewvc/?view=rev&root=qemu&revision=5752
Author:   aliguori
Date:     2008-11-19 15:03:36 +0000 (Wed, 19 Nov 2008)

Log Message:
-----------
Fix media detection on emulated CDROM (Gary Grebus)

This patch tweaks the ATAPI CDROM emulation to fix an annoyance seen
when running a variety of Linux guests: the desktop GUI shows a CDROM
device as present, but is unable to automount the media and display its
contents.

The patch adds the PLAY_AUDIO capability bit to the data returned by
MODE_SENSE commands.  That convinces the guest kernel to determine what
kind of media is present.

Arguably Linux could be smarter about this, but it's my guess there are
few (if any) hardware CDROM drives that don't set the bit, and there are
a large number of Linux distros that exhibit this problem.

Signed-off-by: Gary Grebus <address@hidden>
Signed-off-by: Anthony Liguori <address@hidden>

Modified Paths:
--------------
    trunk/hw/ide.c

Modified: trunk/hw/ide.c
===================================================================
--- trunk/hw/ide.c      2008-11-19 01:31:52 UTC (rev 5751)
+++ trunk/hw/ide.c      2008-11-19 15:03:36 UTC (rev 5752)
@@ -1603,7 +1603,9 @@
                     buf[10] = 0x00;
                     buf[11] = 0x00;
 
-                    buf[12] = 0x70;
+                    /* Claim PLAY_AUDIO capability (0x01) since some Linux
+                       code checks for this to automount media. */
+                    buf[12] = 0x71;
                     buf[13] = 3 << 5;
                     buf[14] = (1 << 0) | (1 << 3) | (1 << 5);
                     if (bdrv_is_locked(s->bs))






reply via email to

[Prev in Thread] Current Thread [Next in Thread]