Skip site navigation (1)Skip section navigation (2)
Date:      Mon, 9 Mar 2009 19:02:49 +0100 (CET)
From:      Juergen Lock <nox@jelal.kn-bremen.de>
To:        gary.jennejohn@freenet.de
Cc:        freebsd-emulation@FreeBSD.org, Doug Barton <dougb@FreeBSD.org>
Subject:   Re: qemu 0.10.0 - cd/dvd drive access problems
Message-ID:  <200903091802.n29I2nYK004571@saturn.kn-bremen.de>
In-Reply-To: <20090309103706.0a44fb26@ernst.jennejohn.org>
References:  <49B46A29.7020500@FreeBSD.org>

next in thread | previous in thread | raw e-mail | index | archive | help
In article <20090309103706.0a44fb26@ernst.jennejohn.org> you write:
>On Sun, 08 Mar 2009 18:00:25 -0700
>Doug Barton <dougb@FreeBSD.org> wrote:
>
>> One of my main reasons for wanting to install qemu was to be able to
>> use Windows tools for things like archiving DVDs. Now that I have qemu
>> working pretty well for most things, I tried to start using it for
>> DVD/CD access and it's not working well at all. I installed XP via a
>> typical installation CD, so I thought I had it made in this area. :(
>> 
>> I'm using '-cdrom /dev/acd0' the same way I did for the install. If
>> there is a disc in the drive when I start qemu I can "see" the disc,
>> and copy some small files from it. However trying to copy/read large
>> files (say, 1G) doesn't work at all. I get an error saying that sector
>> of the disc cannot be read (this is with known-good discs).

Hmm.  I wonder if this bug is related to the opensuse installer segfault,
have you tried with the (now older, still at the 20080620 snapshot)
qemu-devel port thats in the tree?  You could also try the new "werror"
option for -drive (possible values are:
    report    - report errors to a guest as IO errors
    ignore    - continue as if nothing happened
    stop      - stop VM on any error and retry last command on resume
    enospc    - stop vm on ENOSPC error and retry last command on resume
                all other errors are reported to a guest.
I think the default is "enospc" in 0.10.0 .  Yeah -cdrom is readonly
but who knows...)  And finally you could try disabling aio (untested,
I hope the following still works:)

Index: Makefile
@@ -47,7 +47,7 @@
 
 WITHOUT_CPU_CFLAGS=yes	#to avoid problems with register allocation
 CFLAGS:=	${CFLAGS:C/-fno-tree-vrp//}
-CONFIGURE_ARGS+=	--prefix=${PREFIX} --cc=${CC}
+CONFIGURE_ARGS+=	--prefix=${PREFIX} --cc=${CC} --disable-aio
 
 .if defined(WITHOUT_SDL)
 CONFIGURE_ARGS+=	--disable-sdl --disable-gfx-check

>>  I tried
>> with and without the cd-rom DMA compile-time OPTION, no luck. If I
>> remove the disc from the drive, or if there is no disc in the drive
>> when I start qemu, inserting one after it starts produces no results.
>> Every time I try to access the drive I get the "Please insert a disc
>> into drive D:" error message.
>> 
 Try using the `change' monitor command (`change ide1-cd0 /dev/acd0'
in this case.)  Also with Windows guests istr people having to click
`eject' in the guest too before it would recognize a new disc.

>> I'm using a fairly up to date 8-current as the host, btw.
>> 
>> 
>> Any suggestions?
>> 
>
>Do you have vfs_aio in your kernel or as a module?

 Actually qemu 0.10.0 (and also the last few snapshots I posted updates
for) now does its own aio emulation using threads, so the aio(4) kld or
kernel option is no longer needed.

>  I've run openSUSE
>in qemu and used the DVD drive with no problems at all; I have vfs_aio
>in my kernel.  However, I don't know how much data were transfered by
>openSUSE.  Since I was merely loading packages from the DVD it may have
>been only a few MB.
>
>One thing I've noticed is that the DVD drive is locked and I can't open
>the drawer once qemu starts, even if there is no disc in the drive.
>Apparently openSUSE acceses the drive (i.e. locks it) even when it's
>empty.
>
 Hmm I haven't seen that here...  Maybe -current locks the door when
the /dev/acd0 device node is open now too, instead of only when its
mounted like its here.

 Good luck,
	Juergen



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?200903091802.n29I2nYK004571>