USB-Gerät automatisch mit VM verbinden

Götz3000

Benutzer
Mitglied seit
14. Jan 2019
Beiträge
14
Punkte für Reaktionen
3
Punkte
3
Hallo zusammen,
ich stehe vor folgendem Problem, auf meiner DiskStation (DS918+ DSM7) betreibe ich eine VM(Debian). Nun möchte ich ein USB Gerät mit meiner vom verbinden. Das klappt auch ganz gut. Nur leider immer, wenn ich das USB Gerät aus der DiskStation herausziehe und wieder hineinstecke muss ich das Gerät händisch neu verbinden. Ich hätte gern das dieser Vorgang automatisch geschieht. Gibt es da eine Möglichkeit?
 

himitsu

Benutzer
Sehr erfahren
Mitglied seit
22. Okt 2018
Beiträge
2.904
Punkte für Reaktionen
337
Punkte
123
Der VMM (bzw. das innere KVM/Qemu) läßt sich auch über die Konsole steuern.

Ich glaub das mit dem USB wurde hier im Forum schonmal irgendwo genannt.
Du brauchst also nur den nötigen Befehl zu finden, um das USB-Garät in die VM zu connecten, und könntest Diesen dann über die Aufgabenplanung oder z.B. über das Paket Autorun regelmäßig, bzw. beim Anstecken, ausführen.
 
  • Like
Reaktionen: Götz3000

Götz3000

Benutzer
Mitglied seit
14. Jan 2019
Beiträge
14
Punkte für Reaktionen
3
Punkte
3
Ich habe des Tatsächlich hinbekommen.
Hier mal die Lösung für alle:

  1. Per SSH mit dem Host verbinden
  2. Adminrechte holen:
    Code:
    sudo -i
  3. Die Name der Virtuellen Maschine herausfinden:
    Code:
    virsh list --all
    z.B. bei mir: 2c5f6703-d08e-4a15-b474-d87d6581f906

  4. Vendor id und Product id eures USB-Gerätes herausfinden:
    Code:
    lsusb
    z.B. bei mir: 064f:03e9

  5. Im Ordner /etc/ die Datei "usb.xml" erstellen. Mit folgendem Inhalt
    Code:
    <hostdev mode='subsystem' type='usb' managed='yes'>
            <source>
            <vendor id='0x064f'/>
            <product id='0x03e9'/>
          </source>
    </hostdev>

  6. Daraus könnt Ihr mit folgendem Befehl das USB Gerät verbinden:
    Code:
    virsh attach-device 2c5f6703-d08e-4a15-b474-d87d6581f906  /etc/usb.xml
    oder trennen
    Code:
    virsh detach-device 2c5f6703-d08e-4a15-b474-d87d6581f906  /etc/usb.xml
    oder trennen
Da ich mit dem Autorun nicht zurechtgekommen bin. Habe ich eine Aufgabe mit dem Befehl erstellt, die ich jede Minute ausführe 🙄.
Geht wahrscheinlich eleganter und eventuelle Verbesserungsvorschläge nehme ich gern entgegen.
 

plang.pl

Benutzer
Contributor
Sehr erfahren
Mitglied seit
28. Okt 2020
Beiträge
15.028
Punkte für Reaktionen
5.401
Punkte
564
Geil, dass du es hinbekommen hast und die Lösung hier teilst (y)
Das ganze über autorun zu realisieren, würde so ablaufen:
-autorun installieren
-als root noch folgendes Kommando abseten: cp /var/packages/autorun/conf/privilege.root /var/packages/autorun/conf/privilege
-ggf das Paket im Paketzentrum manuell starten.
-deine Befehle in eine Datei namens "autorun" (ohne Endung!) ins root-Verzeichnis des USB-Geräts speichern. Davor (also in die erste Zeile der Datei) muss ein #!/bin/sh. Und als letztes exit 0
 
  • Like
Reaktionen: Götz3000

Götz3000

Benutzer
Mitglied seit
14. Jan 2019
Beiträge
14
Punkte für Reaktionen
3
Punkte
3
@plang.pl
Leider funktioniert das bei mir nicht. Da mein USB-Gerät ein Hardware-Dongle ist. Auf diesem kann ich keine eigenen Daten abspeichern
 

plang.pl

Benutzer
Contributor
Sehr erfahren
Mitglied seit
28. Okt 2020
Beiträge
15.028
Punkte für Reaktionen
5.401
Punkte
564
Hi, ich bins nochmal.
Hab das mit dem automatischen einbinden mal getestet (Win10 Pro x64 VM und DSM7.1 U4 mit neuester VMM Version). Dabei versuchte ich, einen Netzwerkdrucker an die VM durchzuschleifen. Klappt eigentlich soweit ganz gut, es gibt bei mir lediglich einen Schönheitsfehler: Wenn ich das Gerät manuell via VMM trenne und dann mit dem Script wieder verbinde, funktioniert das technisch gesehen. Allerdings zeigt der VMM in den VM-Optionen das Gerät nicht als verbunden an, obwohl es das definitiv ist.

Hinsichtlich Auto-Connect deines Dongles: Ich hab da noch mal in den Tiefen meiner Link-Sammlung gekramt. Ich war mir nämlich ziemlich sicher, dass es mal ein autorun-Paket gab, bei dem man die Datei lokal ablegen konnte und im Paket nur einstellen musste, bei welchen USB-Geräten dieses Script ausgeführt wird. Ergebnis ist, dass ich 3 verschiedene autorun-Pakete fand, die aber allesamt das Script auf dem ext. Datenträger erwarten :cautious:
(Link1 Link2 Link3)
 

seger85

Benutzer
Mitglied seit
21. Feb 2018
Beiträge
127
Punkte für Reaktionen
0
Punkte
16
Guten Morgen zusammen,

bekomme es leider nicht hin, kann jemand bestätigen das es noch funktioniert und mir ggf. helfen. Habe 2 Hardware Sticks angeschlossen und über meine VM angeschlossen. Meine Nas fährt jeden Abend runter und morgen wieder hoch. Beim Hochfahren sind die beiden Sticks nicht eingebunden. Würde es gern so hinbekommen, dass sie einfach wieder eingebunden sind. Einmal ist es ein Zigbee Stick und einmal ein Homatic Stick. Hat jemand einen kompletten Code, welchen ich verwenden kann? Nach dem erfolgreichen einbinden muss ich ggf. auch die Virtuele Maschine Neustarten, sodass es geladen wird, oder ist das einbinden ggf. so schnell das es ggf. auch ohne neu starten der VM möglich ist. Am Ende ist mir das Programm egal, hauptsache es funktioniert.

Danke euch schon mal!!!

Viele Grüße
Seger
 

plang.pl

Benutzer
Contributor
Sehr erfahren
Mitglied seit
28. Okt 2020
Beiträge
15.028
Punkte für Reaktionen
5.401
Punkte
564
Nein, die VM musst du nicht neu starten. Die Befehle stehen doch schon in #3
 

seger85

Benutzer
Mitglied seit
21. Feb 2018
Beiträge
127
Punkte für Reaktionen
0
Punkte
16
vielleicht liegt es daran, dass mein Homeassistant (also die VM) bei einem Neustart ohne die USB Geräte einmal durchstartet.

Hast du diesen Befehl:
virsh attach-device 2c5f6703-d08e-4a15-b474-d87d6581f906 /etc/usb.xml
einfach in die Aufgabenplanung geschoben?

Habe es so gesetzt, das es nach einem Neustart ausgeführt wird, ggf. gibt es dadurch einen Delay. Werde es nachher nochmal testen.
 

plang.pl

Benutzer
Contributor
Sehr erfahren
Mitglied seit
28. Okt 2020
Beiträge
15.028
Punkte für Reaktionen
5.401
Punkte
564
Nein. Ich habe mittlerweile keine VM mehr auf dem NAS.
Damals hatte ich damit mal rumexperimentiert. Da habe ich das aber mit autorun gelöst und das Script auf dem USB-Stick gespeichert.
Wenn über Aufgabenplanung, dann aber definitiv mit root-User
 

seger85

Benutzer
Mitglied seit
21. Feb 2018
Beiträge
127
Punkte für Reaktionen
0
Punkte
16
Achso, Autorun habe ich nicht ausprobiert, da ich ja keine Daten auf den Stick bekomme oder einfach nicht weiß wie, werde es mir alles nochmal anschauen. @Götz3000, hast du es über die Aufgaben gelöst?
 

plang.pl

Benutzer
Contributor
Sehr erfahren
Mitglied seit
28. Okt 2020
Beiträge
15.028
Punkte für Reaktionen
5.401
Punkte
564
Wenn es bei dir da Probleme gibt, aktiviere mal das Protokoll der Aufgabenplanung. Da kann man einen Ausgabeort einstellen und dann siehst du in dem Log die Rückgaben der Befehle im Terminal.
Zudem stelle sicher, dass der Benutzer der Aufgabe root ist.
Alternativ teste die Befehle vorher via ssh.
 
  • Like
Reaktionen: seger85

seger85

Benutzer
Mitglied seit
21. Feb 2018
Beiträge
127
Punkte für Reaktionen
0
Punkte
16
okay, ich bin ein wenig weiter aber noch nicht am Ziel.

Ein USB Gerät binden funktioniert, aber nicht zwei Geräte.
Wie bereits geschrieben wird mir das eine Gerät in der UI von DSM nicht angezeigt, aber es ist gebunden. Ich muss Homeassistent (also die VM) aber danach auch neustarten, da Homeassistent ohne die Bindung beim ersten Mal gestartet ist und das Gerät nicht sauber nachgeladen wird.

Also, ich müsste die VM nochmal über einen Befehl nach dem Binden neustarten, hast du da ggf. einen Befehl für mich?

Des Weiteren müsste ich beim Aufruf es auch noch hinbekommen, dass er 2 USB Geräte bindet.
Wenn ich beide nacheinander versuche zu binden, geht es nicht, da er es blockiert weil ich schon was mit der VM gebunden habe.

Ich glaube ich muss alles in einem Abruf reinbacken, so sieht meine Datei momentan aus:

<hostdev mode='subsystem' type='usb' managed='yes'>
<source>
<vendor id='0x10c4'/>
<product id='0xea60'/>
</source>
<source>
<vendor id='0x1b1f'/>
<product id='0xc020'/>
</source>
</hostdev>

Aber das ist sicher falsch, wenn ich die Source untereinander schreibe, wird auch nur ein Gerät gebunden.

Verstehst du meine wirren Gedanken.

Danke
Seger
 

plang.pl

Benutzer
Contributor
Sehr erfahren
Mitglied seit
28. Okt 2020
Beiträge
15.028
Punkte für Reaktionen
5.401
Punkte
564
Hier gab es mal Infos zum Herunterfahren via cron.
Zum anderen Thema kann ich leider nix sagen. Hab das mit nur 1 Gerät getestet.
 

seger85

Benutzer
Mitglied seit
21. Feb 2018
Beiträge
127
Punkte für Reaktionen
0
Punkte
16
Bin wieder weiter, es war mal ein Bug: https://bugs.launchpad.net/ubuntu/+source/libvirt/+bug/1082213
ich bin jetzt schon fast da, muss aber noch die BUS und Device Nr. rausbekommen.

https://access.redhat.com/documenta...ating a Device with virsh,-For information on

So sieht es jetzt aus:
<hostdev mode='subsystem' type='usb' managed='yes'>
<source>
<vendor id='0x1b1f'/>
<product id='0xc020'/>
<address bus='2' device='1'/>
</source>

<source>
<vendor id='0x10c4'/>
<product id='0xea60'/>
<address bus='2' device='2'/>
</source>
</hostdev>

Bekomme die richtige Bus / Device Nummer nicht:

root@DiskStation:~# lsusb -i
|__usb1 1d6b:0002:0310 09 2.00 480MBit/s 0mA 1IF (ehci_hcd 0000:00:16.0) hub
|__1-1 8087:07db:0003 09 2.00 480MBit/s 0mA 1IF ( ffffffd1ffffffb2ffffffdbffffffad) hub
|__1-1.1 f400:f400:0100 00 2.00 480MBit/s 200mA 1IF (Synology DiskStation 6500787828E41621)
1-1.1:1.0 (IF) 08:06:50 2EPs () usb-storage host22 (synoboot)
|__usb2 1d6b:0002:0310 09 2.00 480MBit/s 0mA 1IF (Linux 3.10.108 etxhci_hcd-170202 Etron xHCI Host Controller 0000:04:00.0) hub
|__2-1 1b1f:c020:0100 00 1.10 12MBit/s 100mA 1IF (Silicon Labs eQ-3 HmIP-RFUSB 3014F711A000041F299ECA0A)
2-1:1.0 (IF) ff:00:00 2EPs ()
|__2-2 10c4:ea60:0100 00 2.00 12MBit/s 100mA 1IF (Nabu Casa SkyConnect v1.0 5c4cc66d23d5ec11b1481db1a1ca919a)
2-2:1.0 (IF) ff:00:00 2EPs ()
|__usb3 1d6b:0003:0310 09 3.00 5000MBit/s 0mA 1IF (Linux 3.10.108 etxhci_hcd-170202 Etron xHCI Host Controller 0000:04:00.0) hub
root@DiskStation:~# lsusb
|__usb1 1d6b:0002:0310 09 2.00 480MBit/s 0mA 1IF (ehci_hcd 0000:00:16.0) hub
|__1-1 8087:07db:0003 09 2.00 480MBit/s 0mA 1IF ( ffffffd1ffffffb2ffffffdbffffffad) hub
|__1-1.1 f400:f400:0100 00 2.00 480MBit/s 200mA 1IF (Synology DiskStation 6500787828E41621)
|__usb2 1d6b:0002:0310 09 2.00 480MBit/s 0mA 1IF (Linux 3.10.108 etxhci_hcd-170202 Etron xHCI Host Controller 0000:04:00.0) hub
|__2-1 1b1f:c020:0100 00 1.10 12MBit/s 100mA 1IF (Silicon Labs eQ-3 HmIP-RFUSB 3014F711A000041F299ECA0A)
|__2-2 10c4:ea60:0100 00 2.00 12MBit/s 100mA 1IF (Nabu Casa SkyConnect v1.0 5c4cc66d23d5ec11b1481db1a1ca919a)
|__usb3 1d6b:0003:0310 09 3.00 5000MBit/s 0mA 1IF (Linux 3.10.108 etxhci_hcd-170202 Etron xHCI Host Controller 0000:04:00.0) hub
 

seger85

Benutzer
Mitglied seit
21. Feb 2018
Beiträge
127
Punkte für Reaktionen
0
Punkte
16
Haben wohl viele das Problem ...https://community.synology.com/enu/forum/1/post/130745?page=1&sort=oldest
 

Jim_OS

Benutzer
Sehr erfahren
Mitglied seit
05. Nov 2015
Beiträge
5.068
Punkte für Reaktionen
2.260
Punkte
259
Du bzw. das verwirrt mich gerade. :LOL: Wenn ich meine DS720+ neu starte ist der USB Zigbee Dongle in der HA VM eingebunden und wird somit auch von HA gefunden/genutzt.

Also kann ich das Posting in dem unter #16 verlinkten Beitrag
DS920+
DSM7.0 + VM
same problem after restart DSM no USB zigbee detected. I need shutdown manually and start VM again. USB3->USB2 nopt help. Its pitty :(

bei mir nicht bestätigen.

VG Jim
 

seger85

Benutzer
Mitglied seit
21. Feb 2018
Beiträge
127
Punkte für Reaktionen
0
Punkte
16
Das ist komisch, ggf. kommt es darauf an welche Synology man hat, wie lange der abgeschaltete Zustand ist, welchen Stick man hat oder ggf. ist auch Homematic schuld. Also bei mir werden sie nicht gebunden 🙃. Aber danke dir für die Bestätigung das es bei dir geht. Schaue es mir nochmal an, ob ich es eingrenzen kann.
 
Zuletzt bearbeitet von einem Moderator:

Jim_OS

Benutzer
Sehr erfahren
Mitglied seit
05. Nov 2015
Beiträge
5.068
Punkte für Reaktionen
2.260
Punkte
259
Jepp alles möglich. :) Ich habe gestern auch nur kurz probiert wie das Verhalten bei meiner DS720+ bei einem Neustart ist und nicht wenn das NAS z.B. per Zeitplan herunter und wieder hochgefahren wird.

Als Zigbee Dongle kommt bei mir der SONOFF Zigbee 3.0 USB Dongle Plus TI EFR32MG21 + CH9102F zum Einsatz.
HA Version 2023.2.5
Supervisor 2023.01.1
Operating System 9.5

DS720_HAVM.png
Für den Test gestern habe ich bei Autostart einfach mal "Letzter Status" eingestellt.

Hm - der normale Bootprozess sollte ja eigentlich so aussehen:
1. NAS wir eingeschaltet und der USB Stick initialisiert und eingebunden.
2. VMM wird gestartet.
3. HA VM wird gestartet und der darin eingebundene USB Stick initialisiert.
4. HA (Debian) bootet, läd die Treiber für den Stick und bindet ihn bei HA ein.

So kenne ich das auch von Proxmox mit HA VM. Es wäre ja auch ziemlich "bekloppt" wenn man einen USB-Stick nach einem Neustart/Reboot immer erst wieder extra und neu einbinden müsste. :ROFLMAO:

VG Jim
 

seger85

Benutzer
Mitglied seit
21. Feb 2018
Beiträge
127
Punkte für Reaktionen
0
Punkte
16
Ja, das ist auch verrückt, wenn es so ist.

Aber du hast gerade noch was erwähnt was bei mir anders war, bei mir war es auf Autostart: „Ja“ und nicht auf „letzter Status“, vielleicht ist es genau das Problem gewesen. Werde es testen.
 


 

Kaffeautomat

Wenn du das Forum hilfreich findest oder uns unterstützen möchtest, dann gib uns doch einfach einen Kaffee aus.

Als Dankeschön schalten wir deinen Account werbefrei.

:coffee:

Hier gehts zum Kaffeeautomat