File: usb-storage.txt

package info (click to toggle)
qemu 1%3A2.1%2Bdfsg-11
  • links: PTS, VCS
  • area: main
  • in suites: jessie-kfreebsd
  • size: 56,688 kB
  • sloc: ansic: 806,370; sh: 12,093; asm: 10,812; python: 8,293; cpp: 6,289; perl: 4,521; makefile: 2,326; objc: 914; xml: 526
file content (47 lines) | stat: -rw-r--r-- 1,978 bytes parent folder | download | duplicates (5)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47

qemu usb storage emulation
--------------------------

QEMU has three devices for usb storage emulation.

Number one emulates the classic bulk-only transport protocol which is
used by 99% of the usb sticks on the market 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


Number three emulates the classic bulk-only transport protocol too.
It's called "usb-bot".  It shares most code with "usb-storage", and
the guest will not be able to see the difference.  The qemu command
line interface is simliar to usb-uas though, i.e. no automatic scsi
disk creation.  It also features support for up to 16 LUNs.  The LUN
numbers must be continuous, i.e. for three devices you must use 0+1+2.
The 0+1+5 numbering from the "usb-uas" example isn't going to work
with "usb-bot".

enjoy,
  Gerd

--
Gerd Hoffmann <kraxel@redhat.com>