]> git.proxmox.com Git - qemu.git/blame - docs/usb-storage.txt
Open 2.0 development tree
[qemu.git] / docs / usb-storage.txt
CommitLineData
0f58f68b
GH
1
2qemu usb storage emulation
3--------------------------
4
34707333 5QEMU has three devices for usb storage emulation.
0f58f68b
GH
6
7Number one emulates the classic bulk-only transport protocol which is
085d8134 8used by 99% of the usb sticks on the market today and is called
0f58f68b
GH
9"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
34707333
GH
34Number 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
085d8134 39numbers must be continuous, i.e. for three devices you must use 0+1+2.
34707333
GH
40The 0+1+5 numbering from the "usb-uas" example isn't going to work
41with "usb-bot".
42
0f58f68b
GH
43enjoy,
44 Gerd
45
46--
47Gerd Hoffmann <kraxel@redhat.com>