Freigeben über


Verbinden eines USB-Geräts mit Azure IoT Edge für Linux unter Windows

Gilt für:Häkchen für IoT Edge 1.5 IoT Edge 1.5

Wichtig

IoT Edge 1.5 LTS ist das unterstützte Release. IoT Edge 1.4 LTS wurde am 12. November 2024 eingestellt. Wenn Sie ein früheres Release verwenden, finden Sie weitere Informationen unter Aktualisieren von IoT Edge.

In einigen Szenarien müssen Ihre Workloads Daten abrufen oder mit USB-Geräten kommunizieren. Da Azure IoT Edge für Linux unter Windows (EFLOW) als virtueller Computer ausgeführt wird, müssen Sie diese Geräte mit dem virtuellen Computer verbinden. Dieser Artikel führt Sie durch die Schritte, die zum Verbinden eines USB-Geräts mit dem virtuellen EFLOW-Computer unter Verwendung des USB/IP-Open-Source-Projekts mit dem Namen usbipd-win erforderlich sind.

Das Einrichten des USB/IP-Projekts auf Ihrem Windows-Computer ermöglicht USB-Entwicklerszenarien wie das Flashen eines Arduino, das Verbinden eines seriellen USB-Geräts oder das Zugreifen auf einen Smartcardleser direkt über den virtuellen EFLOW-Computer.

Warnung

USB über IP bietet einen generischen Mechanismus zum Umleiten von USB-Geräten mithilfe des Netzwerks zwischen dem Windows-Hostbetriebssystem und dem virtuellen EFLOW-Computer. Bei einigen Geräten, die empfindlich auf Netzwerklatenz reagieren, können Probleme auftreten. Darüber hinaus funktionieren einige Geräte aufgrund von Treiberkompatibilitätsproblemen möglicherweise nicht wie erwartet. Stellen Sie sicher, dass Ihre Geräte wie erwartet funktionieren, bevor Sie sie in der Produktion bereitstellen. Weitere Informationen zu USB/IP-getesteten Geräten finden Sie unter USBIP-Win – Wiki – Getestete Geräte.

Voraussetzungen

  • Update für Azure IoT Edge für Linux unter Windows 1.3.1 oder höher. Weitere Informationen zu EFLOW-Versionshinweisen finden Sie unter EFLOW-Versionen.
  • Ein Computer mit einem x64-/x86-Prozessor ist erforderlich, ARM64 wird von usbipd-win nicht unterstützt.

Hinweis

Wenn Sie Ihre Version von Azure IoT Edge für Linux unter Windows überprüfen möchten, navigieren Sie zu Software, und suchen Sie nach Azure IoT Edge. Die installierte Version wird unter Azure IoT Edge aufgeführt. Wenn Sie ein Update auf die neueste Version ausführen müssen, lesen Sie die Informationen zu Updates für Azure IoT Edge für Linux unter Windows.

Installieren des Projekts „UsbIp-Win“

Die Unterstützung für das Verbinden von USB-Geräten ist nicht nativ mit EFLOW verfügbar. Sie müssen das Open-Source-Projekt usbipd-win mithilfe der folgenden Schritte installieren:

  1. Wechseln Sie zur Seite mit dem aktuellen Release für das Projekt „usbipd-win“.
  2. Wählen Sie die Datei usbipd-win_x.y.z.msi aus, und laden Sie sie herunter. (Möglicherweise erhalten Sie eine Warnung, in der Sie bestätigen müssen, dass Sie dem heruntergeladenen Installationsprogramm vertrauen.)
  3. Führen Sie die heruntergeladene Installerdatei usbipd-win_x.y.z.msi aus.

Hinweis

Alternativ können Sie das Projekt „usbipd-win“ auch mit dem Windows-Paket-Manager (winget) installieren. Wenn Sie winget bereits installiert haben, verwenden Sie den Befehl winget install --interactive --exact dorssel.usbipd-win, um „usbipd-win“ zu installieren. Wenn Sie den Parameter --interactive nicht verwenden, kann winget Ihren Computer bei Bedarf sofort neu starten, um die Treiber zu installieren.

Von „UsbIp-Win“ wird Folgendes installiert:

  • Ein Dienst namens usbipd (USBIP Device Host). Sie können den Status dieses Diensts mithilfe der App Dienste in Windows überprüfen.
  • Das Befehlszeilentool usbipd. Der Speicherort dieses Tools wird der PATH-Umgebungsvariablen hinzugefügt.
  • Eine Firewallregel namens usbipd, damit alle lokalen Subnetze eine Verbindung mit dem Dienst herstellen können. Sie können diese Firewallregel ändern, um die Zugriffssteuerung zu optimieren.

Zu diesem Zeitpunkt wird ein Dienst unter Windows ausgeführt, um USB-Geräte freizugeben, und die erforderlichen Tools werden auf dem virtuellen EFLOW-Computer zum Anfügen an freigegebene Geräte installiert.

Warnung

Wenn Sie über eine geöffnete PowerShell-Sitzung verfügen, müssen Sie sie schließen und eine neue Sitzung öffnen, um das Befehlszeilentool usbipd zu laden.

Anfügen eines USB-Geräts an den virtuellen EFLOW-Computer

Die folgenden Schritte stellen ein Beispiel-PowerShell-Cmdlet für EFLOW bereit, um ein USB-Gerät an den virtuellen EFLOW-Computer anzufügen. Wenn Sie die erforderlichen Befehle manuell ausführen möchten, lesen Sie die Informationen zur Verwendung von usbip-win.

Wichtig

Die folgenden Funktionen sind Beispiele, die nicht für die Verwendung in Produktionsbereitstellungen vorgesehen sind. Überprüfen Sie für die Verwendung in der Produktion unbedingt die Funktionalität, und erstellen Sie Ihre eigenen Funktionen basierend auf diesen Beispielen. Die Beispielfunktionen können geändert und gelöscht werden.

  1. Wechseln Sie zu EFLOW-Util, und laden Sie das PowerShell-Beispielmodul „EFLOW-USBIP“ herunter.

  2. Öffnen Sie eine PowerShell-Sitzung mit erhöhten Rechten, indem Sie mit Als Administrator ausführen beginnen.

  3. Importieren Sie das heruntergeladene EFLOW-USBIP-Modul.

    Import-Module "<path-to-module>/EflowUtil-Usbip.psm1"
    
  4. Listen Sie alle USB-Geräte auf, die mit Windows verbunden sind.

    Get-EflowUSBDevices
    
  5. Listen Sie alle Netzwerkschnittstellen auf, und rufen Sie die IP-Adresse des Windows-Hostbetriebssystems ab.

    ipconfig
    
  6. Wählen Sie die Bus-ID des Geräts aus, das Sie an EFLOW anfügen möchten.

    Add-EflowUSBDevices -busid <busid> -hostIp <host-ip>
    
  7. Überprüfen Sie, ob das Gerät ordnungsgemäß an den virtuellen EFLOW-Computer angefügt wurde.

    Invoke-EflowVmCommand "lsusb"
    
  8. Wenn Sie mit der Verwendung des Geräts in EFLOW fertig sind, können Sie das USB-Gerät entweder physisch trennen oder diesen Befehl in einer PowerShell-Sitzung mit erhöhten Rechten ausführen.

    Remove-EflowUSBDevices -busid <busid>
    

Wichtig

Das Anfügen zwischen virtuellem EFLOW-Computer und USB-Gerät wird bei Neustarts nicht beibehalten. Um das USB-Gerät nach dem Neustart anzufügen, müssen Sie möglicherweise ein Bash-Skript erstellen, das während des Startvorgangs ausgeführt wird, und das Gerät mithilfe des Bash-Befehls usbip verbindet. Weitere Informationen zum Anfügen des Geräts aufseiten des virtuellen EFLOW-Computers finden Sie unter Add-EflowUSBDevices.

Weitere Informationen zu USB über IP finden Sie unter Verbinden von USB-Geräten mit WSL und im Repository „usbipd-win“ auf GitHub.

Nächste Schritte

Führen Sie die Schritte unter Entwickeln von IoT Edge-Modulen mit Linux-Containern mithilfe von IoT Edge für Linux unter Windows aus, um ein Modul mit IoT Edge für Linux unter Windows zu entwickeln und zu debuggen.