090c090cFolks,
A USB device (not necessarily a mass/Flash drive) needs to be connected to one of the VMs (an openstack instance).
Openstack installed with kolla-ansible{Latest version/ Also tested on Zed} ALL IN ONE Deployments on ubuntu server 22.04 ( Core i9 12900K).
I found the [nova-libvirt] container which contains virsh and is able to edit it or use custom config for VMs.
I've gone through lots of the docs, to name a few:
but none of them worked for me!!
To reproduce:
Cold-Plug :$ lsusb (on host)
Bus 001 Device 014: ID 090c:1000 Silicon Motion >>>> Note Device number changed every time I disconnect the device. So it might be different in the changed attempt shown below)
$ docker exec -it nova_libvirt /bin/bash
%Turn the Desired VM off
# virsh list --all
Id Name State
---------------------------------------------
2 instance-00000002 running
19 instance-00000008 running
- instance-0000000a shut off
# virsh edit instance-0000000a
Add the changes [1][2][3][4],... ( many efforts have been done but few samples of them are)
[1]: under <devices> added
<hostdev mode='subsystem' type='usb'>
<source>
<vendor id='0x090c'/>
<product id='0x1000'/>
</source>
</hostdev>
[2]:under <devices> added
<controller type='usb' index='0'/>
<hostdev mode='subsystem' type='usb'>
<source>
<vendor id='0x090c'/>
<product id='0x1000'/>
</source>
</hostdev>
[3]: under <devices> added
<hostdev mode='subsystem' type='usb' managed='yes'>
<source>
<vendor id='0x090c'/>
<product id='0x1000'/>
</source>
<address type='pci' domain='0x0000' bus='0x00' slot='0x01' function='0x0'/>
</hostdev>
[4]: under <devices> added
<controller type='usb' model='nec-xhci' index='0'/>
<hostdev mode='subsystem' type='usb' managed='yes'>
<source>
<vendor id='0x090c'/>
<product id='0x1000'/>
</source>
<address type='pci' domain='0x0000' bus='0x00' slot='0x01' function='0x0'/>
</hostdev>
[5]:
<controller type='usb' index='0'>
<address type='pci' domain='0x0000' bus='0x00' slot='0x01' function='0x2'/>
</controller>
<hostdev mode='subsystem' type='usb' managed='yes'>
<source>
<vendor id='0x090c'/>
<product id='0x1000'/>
</source>
<address type='usb' bus='1' port='2'/>
<controller type='usb' index='0'/>
</hostdev>
expected behavior:
when login to the VM, lsusb or df -h shows the USB
what happened:
it wont show the USB from the VM
OR virsh dumpxml instance-0000000a > instance-0000000a.xml
and then change the configs as above and then
virsh attach-device instance-0000000a --file /path/to/updated-instance-0000000a.xml --config
Hot-Plug :
Bus 001 Device 014: ID 090c:1000 Silicon Motion >>>> Note Device number changed every time I disconnect the device. So it might be different in the changed attempt shown below)
$ docker exec -it nova_libvirt /bin/bash
# virsh list --all
Id Name State
---------------------------------------------
2 instance-00000002 running
19 instance-00000008 running
20 instance-0000000a running
#nano USB.xml
%add changes explained in [1][2][3][4],...
$ virsh attach-device
instance-0000000a /path/to/USB.xml/file
expected behavior:
lsusb or df -h shows the USB
what happened:
it wont show the USB from the VM
Can you please guide me through this? Any recommendation would be much appreciated!
Any custom changes comes to your mind ( Reply it) would be solution for this problem /;
Thanks
Best regards