X-Git-Url: https://repo.jachan.dev/qemu.git/blobdiff_plain/83199ca43c81e6931e62e133d9e53024108831ed..5fba0a72ec1968debca8bb80732cc75aa7cd8a21:/docs/usb-storage.txt diff --git a/docs/usb-storage.txt b/docs/usb-storage.txt index ff9755920d..fbc1f2edd8 100644 --- a/docs/usb-storage.txt +++ b/docs/usb-storage.txt @@ -2,10 +2,10 @@ qemu usb storage emulation -------------------------- -Qemu has two emulations for usb storage devices. +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 marked today and is called +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): @@ -31,6 +31,27 @@ with tree logical units: -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". + +Starting with qemu version 2.7 usb-bot and usb-uas devices can be +hotplugged. In the hotplug case they are added with "attached = +false" so the guest will not see the device until the "attached" +property is explicitly set to true. That allows to attach one or more +scsi devices before making the device visible to the guest, i.e. the +workflow looks like this: + + (1) device-add usb-bot,id=foo + (2) device-add scsi-{hd,cd},bus=foo.0,lun=0 + (2b) optionally add more devices (luns 1 ... 15). + (3) scripts/qmp/qom-set foo.attached = true + enjoy, Gerd