On Jun 25, 2015, at 9:31 AM, Stefan Hajnoczi wrote: On Tue, Jun 23, 2015 at 02:26:51PM -0400, Programmingkid wrote:
On Jun 23, 2015, at 2:06 PM, John Snow wrote:
On 06/23/2015 01:56 PM, Programmingkid wrote:
Fix real cdrom detection so that a real cdrom can actually be used.
signed-off-by: John Arbuckle <address@hidden
<mailto:address@hidden>>
This patch has been tested on Mac OS X host and guest.
Command used: qemu-system-ppc -cdrom /dev/cdrom
Note: I was able to view the files using OpenBIOS, but not on
Mac OS X. The size of the disc is reported correctly but some
error happens that prevents it from mounting in Mac OS X. This
is probably another bug with QEMU.
---
block.c | 3 ++-
1 files changed, 2 insertions(+), 1 deletions(-)
diff --git a/block.c b/block.c
index dd4f58d..75ccfad 100644
--- a/block.c
+++ b/block.c
@@ -583,7 +583,8 @@ static int find_image_format(BlockDriverState *bs,
const char *filename,
int ret = 0;
/* Return the raw BlockDriver * to scsi-generic devices or empty
drives */
- if (bs->sg || !bdrv_is_inserted(bs) || bdrv_getlength(bs) == 0) {
+ if (bs->sg || !bdrv_is_inserted(bs) || bdrv_getlength(bs) == 0
+ || strcmp("/dev/cdrom", filename) == 0) {
*pdrv = &bdrv_raw;
return ret;
}
--
1.7.5.4
So what's the issue that this patch attempts to fix and how did you
determine that the fix was needed here? It doesn't look like it respects
proper abstraction at a glance.
Without the patch, QEMU would just quit when the "-cdrom /dev/cdrom" option is given.
Why does it quit?
Because of a bug. This is what it prints: "Could not read image for determining its format: Invalid argument". This message seems to indicate that QEMU thinks the real cdrom drive is an image file. |