Empfohlenes Vorgehen um USB Gerät dauerhaft an eine VM zu binden

  • Hallo VS Nutzer!
    Ich versuche schon längere Zeit ein recht simples Problem zu lösen: ich möchte ein USB Gerät, im konkreten Fall einen USB Scanner ScanSnap 500, dauerhaft an eine virtuelle Maschine (Win 10 VM) binden. Mit dauerhaft meine ich in erster Linie, dass das Gerät auch nach einem Neustart der VM oder auch nach einem Abschalten des Gerätes wieder entsprechend eingebunden wird.

    Meine bisherige Lösung sieht wie folgt aus:

    1. XML Konfiguration mit dem USB Gerät erstellen (Quelle)

    Code: scanner_s500.xml
    <hostdev mode='subsystem' type='usb' managed='yes'>
       <source>
         <vendor id='0x04c5'/>
         <product id='0x10fe'/>
       </source>
     </hostdev>
    at

    2. Erstellen eines Skriptes mit folgendem Inhalt:

    Code: attach_scanner.sh
    #! /bin/sh
    /QVS/usr/bin/virsh attach-device f4508071-0a7a-47cd-b283-2ac0e47a5b2e /share/homes/admin/scanner_s500.xml

    3. udev Regel in /lib/udev/rules.d/50-udev.rules anpassen:

    Code: /lib/udev/rules.d/50-udev.rules
    #Attach S500 to Win 10 Vm
    ACTION=="add",ATTR{idVendor}=="04c5",ATTR{idProduct}=="10fe",RUN+="/share/homes/admin/attach_scanner.sh",OPTIONS+="last_rule"


    Soweit so gut. Das Ganze scheint auch mehr oder minder zu funkionieren. Nun zum Problem: sobald eine Firmwareaktualisierung durchgeführt wird, ist der entsprechende Eintrag in der udev.rules wieder weg. Weiterhin gibt es ab und an doch Probleme mit der Zuweisung des Gerätes. Da das Gerät mit dieser Lösung nicht in der VS angezeigt wird, ist das debuggen etwas schwierig.


    Daher meine Frage: hat jemand von euch eine Idee, wie man das Ganze besser lösen kann? Ich dachte schon an einen cron Job der alle paar Minuten ausgeführt wird, bin mir da aber nicht sicher ob das z.B. die Standby Funktion von Festplatten unterbindet und ob diese Variante dann ein Update (und natürlich auch einen Neutstart) überlebt. Oder wäre es vielleicht sinnvoll eine extra Qnap App zu schreiben die sich um das einpflegen der Änderung in die udev.rules kümmert. Am besten wäre so eine Art IFTTT für Systemeigene Qnap Prozesse...

  • Eine Lösung für das benannte Problem suche ich auch, habe allerdings nicht so viel Sachkenntnis und somit nur Qnap über das Problem informiert und hoffe, dass sie das irgend wann als Erweiterung in die Firmware einbauen. Aber deine Idee ist ein super Ansatz.