[gelöst] Fhem, Virtualbox und USB Devices einbinden

Begonnen von HansDampfHH, 19 Februar 2019, 07:46:32

Vorheriges Thema - Nächstes Thema

HansDampfHH

Hallo, FHEM läuft seit lager Zeit auf einem Intel NUC. Durch meinen Basteltrieb wollte ich mal versuchen FHEM in einer Virtualbox auf meiner Synology laufen zu lassen. Das hat eigentlich sehr gut funktioniert. phpvirtualbox installiert, ein VDI Image meines aktuellen Systems (Debian Jessie) erstellt und in der VM eingebunden.

Erstaunlich wie einfach das war. Nur FHEM hatte natürlich erst mal Schwierigkeiten, da noch kein ioDev angeschlossen war.
Also wollte ich mal testweise mit dem HM-CFG-USB-2 anfangen.

Also:
- HM-CFG-USB-2 an der Synology angeschlossen
- Device wurde bei Virtualbox nicht als USB Device angezeigt
- vendor und product ID über dmesg geholt
- und einen USB-Filter angelegt
- Neustart VM

Hat aber leider nichts gebracht, daher noch mal die Guest Additions in der VM installiert:


deb http://ftp.debian.org/debian jessie main contrib
sudo apt update
sudo apt install virtualbox-guest-dkms linux-headers-$(uname -r)


...auch nicht. Schade, nachdem es erst so einfach war.
Hat da jemand vielleicht noch ein paar Hinweise woran es liegen kann?
Wie man USB Devices einbinden kann/muss?
Ob man evtl. Treiber installieren muss?

Folgen würden dann noch nanoCul 433 / 868, Jeelink und ein CULMax.
FHEM Docker, CUL868, Zigbee, CCU2, Jeelink

t1me2die

Moin,

ich habe zwar keine Synology, jedoch betreibe ich FHEM mit diversen io's auf einem QNAP in der VM.
QNAP kann serienmäßig (in der VM Software) nur maximal 4 USB Geräte durchrouten, aus diesem Grund musste ich mir einen kleinen Workaround programmieren.
Bei einem Neustart des QNAP wird automatisch per Autostart ein Shell-Script ausgeführt, wo ich alle benötigten CUL's, BT Dongle, usw. durchroute zur VM.

1. per lsusb die jeweiligen vendor / product-id notieren (ggf. auch den address bus / device-nr -> falls man CUL's mit denselben vendor- / product-id's hat)
2. Eine XML-Datei mit den Daten aufbauen und in einem Verzeichnis auf dem QNAP / Synology speichern (Pfad merken). Natürlich die vendor- / product-id anpassen.

    <hostdev mode='subsystem' type='usb'>
       <source startupPolicy='optional'>
          <vendor id='0x0451'/>
          <product id='0x16a8'/>
       </source>
    </hostdev>

3. Zum hinzufügen des jeweiligen io's nutze ich den Command
virsh attach-device UUID Pfad-Zur-XML
Dazu musste ich mir von meiner VM erstmal den eindeutigen Namen (UUID) raussuchen (siehe Screenshot). Die UUID kann man aber auch per Terminal rausfinden (weiß nur gerade nicht wie).
4. Sobald ich die UUID von der VM habe und den Pfad zu der XML Datei, so kann ich dann die XML Datei den Command wie folgt ausführen:

virsh attach-device UUID-VON-DEINER-VM /pfad/zu/der/XML/Datei/Name.xml

5. Wenn alles geklappt hat, wird das ioDev aus der XML Datei an die VM mit der UUID durchgeroutet und sollte innerhalb der VM mit "lsusb" sichtbar / ansprechbar sein.

Falls dies auch bei Dir klappen sollte, kannst du später noch immer ein Autostart Script schreiben.

Im Anhang befindet sich noch meine PDF-Doku, die ich für mich selbst mal gemacht habe...
Des Weiteren habe ich mein Script für den Autostart hinzugefügt.

Vielleicht hilft Dir das ja weiter  :)

Gruß
Mathze

HansDampfHH

Vielen Dank für die Infos.
Da werde ich mich heute Abend mal mit beschäftigen!
FHEM Docker, CUL868, Zigbee, CCU2, Jeelink

HansDampfHH

Hm, scheitert leider bereits daran, dass meine Syno virsh nicht kennt.
Ist ja auf der Synology auch nicht ohne weiteres möglich dies per apt-get nach zu installieren.
Schade :-(
FHEM Docker, CUL868, Zigbee, CCU2, Jeelink

t1me2die

Hast du mal hier geschaut:
https://wiki.ubuntuusers.de/virsh/
Hast du Terminal zugriff auf dein NAS?

HansDampfHH

Ich habe Zugriff aber bei Synology gibt es kein apt-get.
Aber ich habe die Lösung mittlerweile gefunden. Darauf wäre ich auch nie gekommen:


Ab der ersten 5er Version hatte VirtualBox bei mir auch keine USB Geräte erkannt.
Damit es wieder ging musste ich diese Zeilen in der vboxdrv.sh auskommentieren:

if grep -q usb_device /proc/devices; then
        mkdir -p -m 0750 /dev/vboxusb 2>/dev/null
chown root:vboxusers /dev/vboxusb 2>/dev/null
fi


Danach waren die USB-Sticks sofort über die GUI verfügbar.
Danke für Deinen Einsatz !
FHEM Docker, CUL868, Zigbee, CCU2, Jeelink

moretty

Zitat von: HansDampfHH am 19 Februar 2019, 21:52:01
Ich habe Zugriff aber bei Synology gibt es kein apt-get.
Aber ich habe die Lösung mittlerweile gefunden. Darauf wäre ich auch nie gekommen:


Ab der ersten 5er Version hatte VirtualBox bei mir auch keine USB Geräte erkannt.
Damit es wieder ging musste ich diese Zeilen in der vboxdrv.sh auskommentieren:

if grep -q usb_device /proc/devices; then
        mkdir -p -m 0750 /dev/vboxusb 2>/dev/null
chown root:vboxusers /dev/vboxusb 2>/dev/null
fi


Danach waren die USB-Sticks sofort über die GUI verfügbar.
Danke für Deinen Einsatz !

Hallo und Entschuldigung für das Schreiben, da ich den Übersetzer benutze. Ich habe seit Monaten versucht, meinen USB in Virtualbox zum Laufen zu bringen. Ich habe es nur geschafft, sie durch einen Filter zu bringen, aber sie funktionieren nicht richtig. Ich möchte mit einem USB-DAC arbeiten, und wenn ich ihn mit einem USB-Filter in der Virtualbox hinzufüge, funktioniert er schlecht. Könntest du mir helfen? Fügen Sie hinzu, was Sie so wie es ist hinzugefügt haben. sh aber es hat bei mir nicht funktioniert. Wenn Sie mir helfen könnten, würde ich es sehr schätzen, fragte ich in allen Foren und niemand weiß oder antwortet. Vielen Dank

amenomade

Du musst zuerst schauen, was grep -q usb_device /proc/devices bei dir ergibt.
Wenn nichts kommt, dann nurgrep -q usb /proc/devices
Pi 3B, Alexa, CUL868+Selbstbau 1/2λ-Dipol-Antenne, USB Optolink / Vitotronic, Debmatic und HM / HmIP Komponenten, Rademacher Duofern Jalousien, Fritz!Dect Thermostaten, Proteus

moretty

#8
Zitat von: amenomade am 19 Juni 2020, 01:51:39
Du musst zuerst schauen, was grep -q usb_device /proc/devices bei dir ergibt.
Wenn nichts kommt, dann nurgrep -q usb /proc/devices

Vielen Dank für Ihre Zeit und Hilfe.
Ich habe beide Befehle eingegeben, aber keiner gibt etwas zurück.

Ich verwende das Paket für Synology Virtualbox und Phpvirtualbox4dsm von hier:
https://github.com/seba76/phpvirtualbox4dsm

amenomade

#9
Welche Version von virtualbox4dsm?

Support für USB wurde erst in Juni 2019 hinzugefügt.
Pi 3B, Alexa, CUL868+Selbstbau 1/2λ-Dipol-Antenne, USB Optolink / Vitotronic, Debmatic und HM / HmIP Komponenten, Rademacher Duofern Jalousien, Fritz!Dect Thermostaten, Proteus

moretty

Zitat von: amenomade am 19 Juni 2020, 20:47:13
Welche Version von virtualbox4dsm?

Support für USB wurde erst in Juni 2019 hinzugefügt.

Ich benutze die neueste Version 6.1.4.

moretty

Zitat von: amenomade am 19 Juni 2020, 20:47:13
Welche Version von virtualbox4dsm?

Support für USB wurde erst in Juni 2019 hinzugefügt.

Wenn ich versuche, einen USB in phpvirtualbox hinzuzufügen, erhalte ich diesen Fehler

Exception Object
(
    [message:protected] => Attribute does not exist
    [string:Exception:private] =>
    [code:protected] => 0
    [file:protected] => /volume1/web/phpvirtualbox4dsm/endpoints/lib/vboxServiceWrappers.php
    [line:protected] => 56
    [trace:Exception:private] => Array
        (
           
  • => Array
                    (
                        [file] => /volume1/web/phpvirtualbox4dsm/endpoints/lib/vboxconnector.php
                        [line] => 3501
                        [function] => __get
                        [class] => VBox_ManagedObject
                        [type] => ->
                        [args] => Array
                            (
                               
  • => portVersion
                            )

                    )

                [1] => Array
                    (
                        [file] => /volume1/web/phpvirtualbox4dsm/endpoints/lib/vboxconnector.php
                        [line] => 951
                        [function] => remote_hostGetUSBDevices
                        [class] => vboxconnector
                        [type] => ->
                        [args] => Array
                            (
                               
  • => Array
                                    (
                                    )

                            )

                    )

                [2] => Array
                    (
                        [file] => /volume1/web/phpvirtualbox4dsm/endpoints/api.php
                        [line] => 316
                        [function] => __call
                        [class] => vboxconnector
                        [type] => ->
                        [args] => Array
                            (
                               
  • => hostGetUSBDevices
                                [1] => Array
                                    (
                                       
  • => Array
                                            (
                                            )

                                        [1] => Array
                                            (
                                               
  • => Array
                                                    (
                                                        [data] => Array
                                                            (
                                                                [responseData] => Array
                                                                    (
                                                                    )

                                                            )

                                                        [errors] => Array
                                                            (
                                                            )

                                                        [persist] => Array
                                                            (
                                                            )

                                                        [messages] => Array
                                                            (
                                                            )

                                                    )

amenomade

Wollte ich gerade sagen: dein Usb Device wird nicht erkannt.
Da kenne ich mich aber mit VBphp nicht genug aus, um weiter zu investigieren.

Ich kann dir nur sagen: die Fehlermeldung kommt von  hostGetUSBDevices, und diese Funktion findet anscheinend nichts.
Pi 3B, Alexa, CUL868+Selbstbau 1/2λ-Dipol-Antenne, USB Optolink / Vitotronic, Debmatic und HM / HmIP Komponenten, Rademacher Duofern Jalousien, Fritz!Dect Thermostaten, Proteus

amenomade

Pi 3B, Alexa, CUL868+Selbstbau 1/2λ-Dipol-Antenne, USB Optolink / Vitotronic, Debmatic und HM / HmIP Komponenten, Rademacher Duofern Jalousien, Fritz!Dect Thermostaten, Proteus

moretty

#14
Zitat von: amenomade am 19 Juni 2020, 21:58:40
Ich habe dich hier gefunden: https://community.volumio.org/t/running-volumio-in-docker-or-virtual-image/12720/5

;)

xDD
Ja, fragen Sie in allen Foren. Ich habe es seit Monaten versucht und niemand konnte mir helfen. Ich bin verzweifelt.
Ich habe es auch im Docker versucht, aber dort hat mich der DAC nicht direkt erkannt