diff options
author | Gerd Hoffmann <kraxel@redhat.com> | 2012-06-08 16:03:37 +0200 |
---|---|---|
committer | Gerd Hoffmann <kraxel@redhat.com> | 2012-07-12 15:00:39 +0200 |
commit | 0f58f68b58eb0528545553d2c44f6b8e472cedb0 (patch) | |
tree | 1b60b5b25a95e839bc911da477e08d1aabfebb46 /docs/usb-storage.txt | |
parent | 8e86b93c2b69a7369aa62a6daec203fe5e757497 (diff) | |
download | qemu-0f58f68b58eb0528545553d2c44f6b8e472cedb0.zip qemu-0f58f68b58eb0528545553d2c44f6b8e472cedb0.tar.gz qemu-0f58f68b58eb0528545553d2c44f6b8e472cedb0.tar.bz2 |
usb: add usb attached scsi emulation
$subject says all. First cut.
It's a pure UAS (usb attached scsi) emulation, without BOT (bulk-only
transport) compatibility. If your guest can't handle it use usb-storage
instead.
The emulation works like any other scsi hba emulation (eps, lsi, virtio,
megasas, ...). It provides just the HBA where you can attach scsi
devices as you like using '-device'. A single scsi target with up to
256 luns is supported.
For now only usb 2.0 transport is supported. This will change in the
future though as I plan to use this as playground when codeing up &
testing usb 3.0 transport and streams support in the qemu usb core and
the xhci emulation.
No migration support yet. I'm planning to add usb 3.0 support first as
this probably requires saving additional state.
Special thanks go to Paolo for bringing the qemu scsi emulation into
shape, so this can be added nicely without having to touch a single line
of scsi code.
Signed-off-by: Gerd Hoffmann <kraxel@redhat.com>
Diffstat (limited to 'docs/usb-storage.txt')
-rw-r--r-- | docs/usb-storage.txt | 38 |
1 files changed, 38 insertions, 0 deletions
diff --git a/docs/usb-storage.txt b/docs/usb-storage.txt new file mode 100644 index 0000000..ff97559 --- /dev/null +++ b/docs/usb-storage.txt @@ -0,0 +1,38 @@ + +qemu usb storage emulation +-------------------------- + +Qemu has two emulations for usb storage devices. + +Number one emulates the classic bulk-only transport protocol which is +used by 99% of the usb sticks on the marked today and is called +"usb-storage". Usage (hooking up to xhci, other host controllers work +too): + + qemu ${other_vm_args} \ + -drive if=none,id=stick,file=/path/to/file.img \ + -device nec-usb-xhci,id=xhci \ + -device usb-storage,bus=xhci.0,drive=stick + + +Number two is the newer usb attached scsi transport. This one doesn't +automagically create a scsi disk, so you have to explicitly attach one +manually. Multiple logical units are supported. Here is an example +with tree logical units: + + qemu ${other_vm_args} \ + -drive if=none,id=uas-disk1,file=/path/to/file1.img \ + -drive if=none,id=uas-disk2,file=/path/to/file2.img \ + -drive if=none,id=uas-cdrom,media=cdrom,file=/path/to/image.iso \ + -device nec-usb-xhci,id=xhci \ + -device usb-uas,id=uas,bus=xhci.0 \ + -device scsi-hd,bus=uas.0,scsi-id=0,lun=0,drive=uas-disk1 \ + -device scsi-hd,bus=uas.0,scsi-id=0,lun=1,drive=uas-disk2 \ + -device scsi-cd,bus=uas.0,scsi-id=0,lun=5,drive=uas-cdrom + + +enjoy, + Gerd + +-- +Gerd Hoffmann <kraxel@redhat.com> |