Re: [Qemu-devel] [Qemu-ppc] real cdrom access failure
On 06/10/2013 03:39 PM, Programmingkid wrote: On Jun 9, 2013, at 12:34 PM, Alexander Graf wrote: On 09.06.2013, at 18:28, Programmingkid wrote: I am trying to access the cdrom drive in QEMU 1.5.0, but can't. This is the error I see: qemu-system-ppc: -cdrom /dev/cdrom: could not open disk image /dev/cdrom: No such file or directory. I think this is a bug with version 1.5.0 on Mac OS X. Anybody else notice this problem? Mac OS X doesn't provide a /dev/cdrom link. You have to point it directly to the target device. To get a list of available devices, try $ diskutil list Also make sure that all partitions and file systems on top of the CD-ROM are unmounted (diskutil unmount or just umount), as OSX won't allow direct access to /dev/disk1 otherwise. Alex The -cdrom /dev/cdrom option always worked in the past. Just not with version 1.5.0. Hrm. CC'ing Andreas and Peter. They're the best matches to people knowing their way around OSX host support :). Also Changing qemu-ppc@ to qemu-devel@, as this is 100% unrelated to the ppc target. Alex
Re: [Qemu-devel] [Qemu-ppc] real cdrom access failure
Am 10.06.2013 15:41, schrieb Alexander Graf: On 06/10/2013 03:39 PM, Programmingkid wrote: On Jun 9, 2013, at 12:34 PM, Alexander Graf wrote: On 09.06.2013, at 18:28, Programmingkid wrote: I am trying to access the cdrom drive in QEMU 1.5.0, but can't. This is the error I see: qemu-system-ppc: -cdrom /dev/cdrom: could not open disk image /dev/cdrom: No such file or directory. I think this is a bug with version 1.5.0 on Mac OS X. Anybody else notice this problem? Mac OS X doesn't provide a /dev/cdrom link. You have to point it directly to the target device. To get a list of available devices, try $ diskutil list Also make sure that all partitions and file systems on top of the CD-ROM are unmounted (diskutil unmount or just umount), as OSX won't allow direct access to /dev/disk1 otherwise. Alex The -cdrom /dev/cdrom option always worked in the past. Just not with version 1.5.0. Hrm. CC'ing Andreas and Peter. They're the best matches to people knowing their way around OSX host support :). The translation of /dev/cdrom happens in block/raw-posix.c:hdev_open(). For v1.5.0 a filename parameter was dropped from the block API, so currently the Mac OS X code is changing the local variable so the modified filename variable never makes it into the QDict *options. :/ Andreas Also Changing qemu-ppc@ to qemu-devel@, as this is 100% unrelated to the ppc target. Alex -- SUSE LINUX Products GmbH, Maxfeldstr. 5, 90409 Nürnberg, Germany GF: Jeff Hawn, Jennifer Guild, Felix Imendörffer; HRB 16746 AG Nürnberg
Re: [Qemu-devel] [Qemu-ppc] real cdrom access failure
Am 10.06.2013 um 16:22 hat Andreas Färber geschrieben: Am 10.06.2013 15:41, schrieb Alexander Graf: On 06/10/2013 03:39 PM, Programmingkid wrote: On Jun 9, 2013, at 12:34 PM, Alexander Graf wrote: On 09.06.2013, at 18:28, Programmingkid wrote: I am trying to access the cdrom drive in QEMU 1.5.0, but can't. This is the error I see: qemu-system-ppc: -cdrom /dev/cdrom: could not open disk image /dev/cdrom: No such file or directory. I think this is a bug with version 1.5.0 on Mac OS X. Anybody else notice this problem? Mac OS X doesn't provide a /dev/cdrom link. You have to point it directly to the target device. To get a list of available devices, try $ diskutil list Also make sure that all partitions and file systems on top of the CD-ROM are unmounted (diskutil unmount or just umount), as OSX won't allow direct access to /dev/disk1 otherwise. Alex The -cdrom /dev/cdrom option always worked in the past. Just not with version 1.5.0. Hrm. CC'ing Andreas and Peter. They're the best matches to people knowing their way around OSX host support :). The translation of /dev/cdrom happens in block/raw-posix.c:hdev_open(). For v1.5.0 a filename parameter was dropped from the block API, so currently the Mac OS X code is changing the local variable so the modified filename variable never makes it into the QDict *options. :/ Oh nice, magic filenames. Whoever thought this was a good idea... It's easy enough to fix, just put the string back to the QDict in the end. It feels wrong to do something like this, but if we have been doing it before, I guess we must keep doing so. Kevin
Re: [Qemu-devel] [Qemu-ppc] real cdrom access failure
Am 10.06.2013 16:33, schrieb Kevin Wolf: Am 10.06.2013 um 16:22 hat Andreas Färber geschrieben: Am 10.06.2013 15:41, schrieb Alexander Graf: On 06/10/2013 03:39 PM, Programmingkid wrote: On Jun 9, 2013, at 12:34 PM, Alexander Graf wrote: On 09.06.2013, at 18:28, Programmingkid wrote: I am trying to access the cdrom drive in QEMU 1.5.0, but can't. This is the error I see: qemu-system-ppc: -cdrom /dev/cdrom: could not open disk image /dev/cdrom: No such file or directory. I think this is a bug with version 1.5.0 on Mac OS X. Anybody else notice this problem? Mac OS X doesn't provide a /dev/cdrom link. You have to point it directly to the target device. To get a list of available devices, try $ diskutil list Also make sure that all partitions and file systems on top of the CD-ROM are unmounted (diskutil unmount or just umount), as OSX won't allow direct access to /dev/disk1 otherwise. The -cdrom /dev/cdrom option always worked in the past. Just not with version 1.5.0. Hrm. CC'ing Andreas and Peter. They're the best matches to people knowing their way around OSX host support :). The translation of /dev/cdrom happens in block/raw-posix.c:hdev_open(). For v1.5.0 a filename parameter was dropped from the block API, so currently the Mac OS X code is changing the local variable so the modified filename variable never makes it into the QDict *options. :/ Oh nice, magic filenames. Whoever thought this was a good idea... It's easy enough to fix, just put the string back to the QDict in the end. It feels wrong to do something like this, but if we have been doing it before, I guess we must keep doing so. block.c: * Detect host devices. By convention, /dev/cdrom[N] is always block/raw-posix.c:if (strstart(filename, /dev/cdrom, NULL)) block/raw-posix.c:if (strstart(filename, /dev/cdrom, NULL)) { block/raw-win32.c:if (strstart(filename, /dev/cdrom, NULL)) block/raw-win32.c:if (strstart(filename, /dev/cdrom, NULL)) { I happened to know about this issue because we have similar downstream block drivers that need to translate the filename and broke with v1.5. I'll look into fixing this if no one beats me to it. We'll probably need a g_strdup() since bsdPath[] is on the stack. Andreas -- SUSE LINUX Products GmbH, Maxfeldstr. 5, 90409 Nürnberg, Germany GF: Jeff Hawn, Jennifer Guild, Felix Imendörffer; HRB 16746 AG Nürnberg
Re: [Qemu-devel] [Qemu-ppc] real cdrom access failure
Am 10.06.2013 um 16:45 hat Andreas Färber geschrieben: Am 10.06.2013 16:33, schrieb Kevin Wolf: Am 10.06.2013 um 16:22 hat Andreas Färber geschrieben: Am 10.06.2013 15:41, schrieb Alexander Graf: On 06/10/2013 03:39 PM, Programmingkid wrote: On Jun 9, 2013, at 12:34 PM, Alexander Graf wrote: On 09.06.2013, at 18:28, Programmingkid wrote: I am trying to access the cdrom drive in QEMU 1.5.0, but can't. This is the error I see: qemu-system-ppc: -cdrom /dev/cdrom: could not open disk image /dev/cdrom: No such file or directory. I think this is a bug with version 1.5.0 on Mac OS X. Anybody else notice this problem? Mac OS X doesn't provide a /dev/cdrom link. You have to point it directly to the target device. To get a list of available devices, try $ diskutil list Also make sure that all partitions and file systems on top of the CD-ROM are unmounted (diskutil unmount or just umount), as OSX won't allow direct access to /dev/disk1 otherwise. The -cdrom /dev/cdrom option always worked in the past. Just not with version 1.5.0. Hrm. CC'ing Andreas and Peter. They're the best matches to people knowing their way around OSX host support :). The translation of /dev/cdrom happens in block/raw-posix.c:hdev_open(). For v1.5.0 a filename parameter was dropped from the block API, so currently the Mac OS X code is changing the local variable so the modified filename variable never makes it into the QDict *options. :/ Oh nice, magic filenames. Whoever thought this was a good idea... It's easy enough to fix, just put the string back to the QDict in the end. It feels wrong to do something like this, but if we have been doing it before, I guess we must keep doing so. block.c: * Detect host devices. By convention, /dev/cdrom[N] is always block/raw-posix.c:if (strstart(filename, /dev/cdrom, NULL)) block/raw-posix.c:if (strstart(filename, /dev/cdrom, NULL)) { block/raw-win32.c:if (strstart(filename, /dev/cdrom, NULL)) block/raw-win32.c:if (strstart(filename, /dev/cdrom, NULL)) { I happened to know about this issue because we have similar downstream block drivers that need to translate the filename and broke with v1.5. I'll look into fixing this if no one beats me to it. We'll probably need a g_strdup() since bsdPath[] is on the stack. Not necessary, qstring_from_str() creates a copy anyway. I can't test it, but does the following work for you? Kevin diff --git a/block/raw-posix.c b/block/raw-posix.c index c0ccf27..90ce9f8 100644 --- a/block/raw-posix.c +++ b/block/raw-posix.c @@ -1350,6 +1350,7 @@ static int hdev_open(BlockDriverState *bs, QDict *options, int flags) qemu_close(fd); } filename = bsdPath; +qdict_put(options, filename, qstring_from_str(filename)); } if ( mediaIterator )