Moin,
hierhabe ich ein Problem mit libvirt geschildert, welches ich umschiffen möchte.
Kurzum: Wenn ich ein USB-Device anhand seiner Vendor-ID an eine virtuelle Maschine durchreichen will, aber zwei identische Geräte davon habe, wird nur eins der beiden Devices durchgereicht.
Mit der Syntax Bus/Device funktioniert das ganze aber.
Nun ändert sich die Device-ID ja beim Reboot möglicherweise. Kann man dies via udev o.ä. ändern?
Sonst muss ich die XML-Datei vor dem Start/im Startskript ändern. Dazu muss ich via skript lsusb aufrufen und die Device-IDs suchen.
Aus
Bus 002 Device 002: ID 8087:0024
Bus 002 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
Bus 001 Device 006: ID 04fa:2490 Dallas Semiconductor DS1490F 2-in-1 Fob, 1-Wire adapter
Bus 001 Device 005: ID 04fa:2490 Dallas Semiconductor DS1490F 2-in-1 Fob, 1-Wire adapter
Bus 001 Device 004: ID 046d:c31c Logitech, Inc.
Bus 001 Device 003: ID 046d:c00f Logitech, Inc. MouseMan Traveler/Mobile
Bus 001 Device 002: ID 8087:0024
Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
wird via Grep ja ganz einfach
Bus 001 Device 006: ID 04fa:2490 Dallas Semiconductor DS1490F 2-in-1 Fob, 1-Wire adapter
Bus 001 Device 005: ID 04fa:2490 Dallas Semiconductor DS1490F 2-in-1 Fob, 1-Wire adapter
Aber wie extrahiere ich daraus jetzt "5" und "6"?
Ich weiß, dass man mit Grep nach dem ersten und letzten Vorkommnis suchen kann. Und dann kann man bestimmt via String-Operation auch auf die 17. Stelle des Strings zugreifen. Aber das geht bestimmt eleganter, oder?
Danach würde ich eine Konfigurationsdatei mit Platzhaltern "ersetzmich1" und "ersetzmich2" ausstatten und mit sed ersetzmich1&2 durch 5&6 ersetzen...
Gruß,
Hendrik