qemu-devel
[Top][All Lists]
Advanced

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

Re: [Qemu-devel] [Qemu-ppc] real cdrom access failure


From: Andreas Färber
Subject: Re: [Qemu-devel] [Qemu-ppc] real cdrom access failure
Date: Mon, 10 Jun 2013 16:45:49 +0200
User-agent: Mozilla/5.0 (X11; Linux x86_64; rv:17.0) Gecko/20130510 Thunderbird/17.0.6

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



reply via email to

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