blob: c5a3866eeb89a5fa1516f9eac034feedf84e3b89 [file] [log] [blame]
Gerd Hoffmann0f58f682012-06-08 16:03:37 +02001
2qemu usb storage emulation
3--------------------------
4
Gerd Hoffmann34707332013-01-14 15:29:44 +01005QEMU has three devices for usb storage emulation.
Gerd Hoffmann0f58f682012-06-08 16:03:37 +02006
7Number one emulates the classic bulk-only transport protocol which is
Peter Maydell085d8132013-03-18 17:20:07 +00008used by 99% of the usb sticks on the market today and is called
Gerd Hoffmann0f58f682012-06-08 16:03:37 +02009"usb-storage". Usage (hooking up to xhci, other host controllers work
10too):
11
12 qemu ${other_vm_args} \
13 -drive if=none,id=stick,file=/path/to/file.img \
14 -device nec-usb-xhci,id=xhci \
15 -device usb-storage,bus=xhci.0,drive=stick
16
17
18Number two is the newer usb attached scsi transport. This one doesn't
19automagically create a scsi disk, so you have to explicitly attach one
20manually. Multiple logical units are supported. Here is an example
21with tree logical units:
22
23 qemu ${other_vm_args} \
24 -drive if=none,id=uas-disk1,file=/path/to/file1.img \
25 -drive if=none,id=uas-disk2,file=/path/to/file2.img \
26 -drive if=none,id=uas-cdrom,media=cdrom,file=/path/to/image.iso \
27 -device nec-usb-xhci,id=xhci \
28 -device usb-uas,id=uas,bus=xhci.0 \
29 -device scsi-hd,bus=uas.0,scsi-id=0,lun=0,drive=uas-disk1 \
30 -device scsi-hd,bus=uas.0,scsi-id=0,lun=1,drive=uas-disk2 \
31 -device scsi-cd,bus=uas.0,scsi-id=0,lun=5,drive=uas-cdrom
32
33
Gerd Hoffmann34707332013-01-14 15:29:44 +010034Number three emulates the classic bulk-only transport protocol too.
35It's called "usb-bot". It shares most code with "usb-storage", and
36the guest will not be able to see the difference. The qemu command
37line interface is simliar to usb-uas though, i.e. no automatic scsi
38disk creation. It also features support for up to 16 LUNs. The LUN
Peter Maydell085d8132013-03-18 17:20:07 +000039numbers must be continuous, i.e. for three devices you must use 0+1+2.
Gerd Hoffmann34707332013-01-14 15:29:44 +010040The 0+1+5 numbering from the "usb-uas" example isn't going to work
41with "usb-bot".
42
Gerd Hoffmann0f58f682012-06-08 16:03:37 +020043enjoy,
44 Gerd
45
46--
47Gerd Hoffmann <kraxel@redhat.com>