Hi, > -device nec-usb-xhci,id=xhci \ > -device usb-bot,id=scsi0,bus=xhci.0 \ > -device > scsi-cd,bus=scsi0.0,channel=0,scsi-id=0,lun=0,device_id=drive-scsi0-0-0-0,drive=libvirt-1-format,id=scsi0-0-0-0,bootindex=1 > \ > -device > scsi-cd,bus=scsi0.0,channel=0,scsi-id=0,lun=1,device_id=drive-scsi0-0-0-1,drive=libvirt-1-format,id=scsi0-0-0-1 > \ > > which starts, but gives me a "Synchronous Exception" from the TianoCore > firmware, which I often saw with PCI enumeration problems. Hmm, firmware bug? Does seabios work? > Also "info usb" just shows a single device. I just copied these lines > from a normal libvirt SCSI setup with two cdroms. That is normal, it actually is only one usb device after all ;) > But compared to my small patch with the usb-storage based USB CDROM, > this looks like a much larger change and a lot of work implement. Yes. As far I know libvirt wants move away from the old syntax and shift to use -blockdev more, not the other way around. > 1. doing this transparently with a controller per device, just like the > usb-storage controller does internally (ok - it's just a scsi-cd there), > even if the usb-bot supports multiple LUNs. Guess multiple LUNs would > act like an USB hub? usb-storage simply doesn't support multiple LUNs, so when going that route you can completely ignore the multiple LUN case. > 2. invalidating the cdrom with USB addresses configurations and exposing > the controller in the XML. This seems easier from the libvirt code POV, > like: > > <controller type='scsi' model='usb-bot'> > <address type='usb' port='1'/> > </controller> Yep, that is the other obvious approach. > So I still would like to see my much simpler solution merged. See above, but I'm not a libvirt maintainer so that's not for me to judge. I'm just pointing out that this can be fixed without switching back to the old -drive syntax. take care, Gerd