On 03/09/15 21:03, JCA wrote:
> On Mon, Mar 9, 2015 at 1:53 PM, Laszlo Ersek <[email protected]> wrote:
>> On 03/09/15 20:36, JCA wrote:
>>> On Mon, Mar 9, 2015 at 1:15 PM, Laszlo Ersek <[email protected]> wrote:

>>>> Option 2 should suffice for quick & dirty testing, if you can get
>>>> virtio-blk-pci working.
>>>
>>> Thanks for your help again. Embarrassingly though, still no cigar here:
>>>
>>> qemu-system-i386: -device virtio-blk-pci,drive: Property
>>> 'virtio-blk-device.drive' can't find value 'on'
>>>
>>> This keeping exactly the same command line as above, but replacing
>>> virtio-blk-device with virtio-blk-pci.
>>
>> What qemu are you using? My guess is "ancient". That command line works
>> for me.
> 
> It is QEMU 2.2.0 under Slackware 14.1. A Google search on the error
> returned has yet to yield anything really useful.

Okay, with some experimentation I figured out the error on your end. I
can get the same error message with:

  qemu-system-i386 -device virtio-blk-pci,drive

The issue is that you must have passed the "drive" property without
assigning any backend identifier to it, such as in

  qemu-system-i386 -device virtio-blk-pci,drive=drive0

In this case, "drive" is interpreted as a boolean flag (hence "on"), and
it doesn't make sense.

In general, qemu has backends (host-side stuff) and frontends (devices
that the guest sees).

You set up backends with -drive and -netdev (and others), and each of
these backend options takes an id=XXXX parameter.

Then, you can configure frontends (devices that the guest sees) with
-device virtio-blk-pci, -device virtio-net-pci, and so on.

And in these frontend options, you have to pass some property (the
property name depends on the exact device type) that identifies what
backend the frontent should be connected to. For example, the "drive"
property for "-device virtio-blk-pci" must resolve to the "id" property
of a -drive backend. Similarly, the "netdev" property for "-device
virtio-net-pci" must resolve to an earlier -netdev's "id" property.

Examples:

  -netdev user,id=netdev0,hostfwd=tcp:127.0.0.1:2222-:22 \
  -device virtio-net-pci,netdev=netdev0,bootindex=2 \

Search this example for the string "netdev0". The first option is the
backend (host side config), and the second option is the frontend (the
device that the guest sees).

Similarly from earlier in this thread,

  -drive file=fat:/host/directory/name,id=drive0,if=none,format=raw \
  -device virtio-blk-device,drive=drive0

here the connecting identifier between backend and frontend is "drive0".
(It's an arbitrary choice.)

So, again I think the error in your case was that you left off "=drive0".

Laszlo

------------------------------------------------------------------------------
Dive into the World of Parallel Programming The Go Parallel Website, sponsored
by Intel and developed in partnership with Slashdot Media, is your hub for all
things parallel software development, from weekly thought leadership blogs to
news, videos, case studies, tutorials and more. Take a look and join the 
conversation now. http://goparallel.sourceforge.net/
_______________________________________________
edk2-devel mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/edk2-devel

Reply via email to