Примечание
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
Область применения: IoT Edge 1.5
Внимание
IoT Edge 1.5 LTS является поддерживаемым выпуском. IoT Edge 1.4 LTS заканчивается жизнью с 12 ноября 2024 года. Если вы используете более ранний выпуск, см. статью Обновление IoT Edge.
В некоторых сценариях рабочие нагрузки должны получать данные или взаимодействовать с USB-устройствами. Так как Azure IoT Edge для Linux в Windows (EFLOW) выполняется как виртуальная машина, необходимо подключить эти устройства к виртуальной машине. В этой статье описаны действия, необходимые для подключения USB-устройства к виртуальной машине EFLOW с помощью проекта с открытым кодом USB/IP с именем usbipd-win.
Настройка проекта USB/IP на компьютере Windows позволяет использовать распространенные сценарии USB разработчика, такие как мигание Arduino, подключение usb-устройства или доступ к средству чтения смарт-карт непосредственно из виртуальной машины EFLOW.
Предупреждение
USB-адрес по IP-адресу предоставляет универсальный механизм перенаправления USB-устройств с помощью сети между ОС узла Windows и виртуальной машиной EFLOW. Некоторые устройства, чувствительные к задержке сети, могут возникнуть проблемы. Кроме того, некоторые устройства могут не работать должным образом из-за проблем совместимости драйверов. Убедитесь, что устройства работают должным образом перед развертыванием в рабочей среде. Дополнительные сведения о тестируемых устройствах USB/IP см. в статье USBIP-Win — Wiki - Tested Devices.
Необходимые компоненты
- Обновление Azure IoT Edge для Linux в Windows 1.3.1 или более поздней версии. Дополнительные сведения о заметках о выпуске EFLOW см. в разделе "Выпуски EFLOW".
- Требуется компьютер с процессором x64/x86, usbipd-win не поддерживает ARM64.
Примечание.
Чтобы проверить версию Azure IoT Edge для Linux, перейдите к разделу "Добавить или удалить программы " и найдите Azure IoT Edge. Установленная версия указана в разделе Azure IoT Edge. Если необходимо обновить до последней версии, ознакомьтесь с обновлениями Azure IoT Edge для Linux в Windows.
Установка проекта UsbIp-Win
Поддержка подключения USB-устройств в собственном коде недоступна с помощью EFLOW. Необходимо установить проект usbipd-win с открытым исходным кодом, выполнив следующие действия:
- Перейдите на последнюю страницу выпуска для проекта usbipd-win .
- Выберите и скачайте файл usbipd-win_x.y.z.msi . (Вы можете получить предупреждение с просьбой подтвердить, что вы доверяете скачанный установщик).
- Запустите скачанный файл установщика usbipd-win_x.y.z.msi .
Примечание.
Кроме того, можно установить проект usbipd-win с помощью Диспетчер пакетов Windows (winget). Если вы уже установили winget, используйте команду: winget install --interactive --exact dorssel.usbipd-win
чтобы установить usbipd-win. Если параметр не используется --interactive
, winget может немедленно перезапустить компьютер при необходимости для установки драйверов.
Устанавливается usbIp-Win:
- Служба с именем
usbipd
(узел устройства USBIP). Вы можете проверить состояние этой службы с помощью приложения "Службы " в Windows. - Средство
usbipd
командной строки. Расположение этого средства добавляется в переменную среды PATH. - Правило брандмауэра, вызываемое
usbipd
для разрешения подключения ко всей локальной подсети к службе. Это правило брандмауэра можно изменить, чтобы настроить управление доступом.
На этом этапе служба работает в Windows для совместного использования USB-устройств, и необходимые средства устанавливаются на виртуальной машине EFLOW для подключения к общим устройствам.
Предупреждение
Если у вас есть открытый сеанс PowerShell, закройте его и откройте новый, чтобы загрузить средство командной usbipd
строки.
Подключение USB-устройства к виртуальной машине EFLOW
Ниже приведен пример командлета EFLOW PowerShell для подключения USB-устройства к виртуальной машине EFLOW. Если вы хотите вручную выполнить необходимые команды, см. инструкции по использованию usbip-win.
Внимание
Ниже приведены примеры, которые не предназначены для использования в рабочих развертываниях. Для использования в рабочей среде убедитесь, что вы проверяете функциональные возможности и создаете собственные функции на основе этих примеров. Примеры функций подлежат изменению и удалению.
Перейдите к EFLOW-Util и скачайте пример модуля PowerShell EFLOW-USBIP.
Откройте сеанс PowerShell с повышенными привилегиями, начиная с запуска от имени администратора.
Импортируйте скачанный модуль EFLOW-USBIP.
Import-Module "<path-to-module>/EflowUtil-Usbip.psm1"
Список всех USB-устройств, подключенных к Windows.
Get-EflowUSBDevices
Вывод списка всех сетевых интерфейсов и получения IP-адреса ОС узла Windows
ipconfig
Выберите идентификатор шины устройства, которое вы хотите подключить к EFLOW.
Add-EflowUSBDevices -busid <busid> -hostIp <host-ip>
Проверьте, правильно ли подключено устройство к виртуальной машине EFLOW.
Invoke-EflowVmCommand "lsusb"
Завершив работу с устройством в EFLOW, вы можете физически отключить USB-устройство или выполнить эту команду из сеанса PowerShell с повышенными привилегиями.
Remove-EflowUSBDevices -busid <busid>
Внимание
Вложение виртуальной машины EFLOW на USB-устройство не сохраняется во время перезагрузки. Чтобы подключить USB-устройство после перезагрузки, может потребоваться создать скрипт bash, который выполняется во время запуска и подключает устройство с помощью usbip
команды Bash. Дополнительные сведения о подключении устройства на стороне виртуальной машины EFLOW см. в разделе Add-EflowUSBDevices.
Дополнительные сведения о том, как USB-подключение USB-устройств к WSL и репозиторию usbipd-win на GitHub см. в статье о подключении USB-устройств к WSL и репозиторию usbipd-win.
Следующие шаги
Выполните инструкции по разработке модулей IoT Edge с контейнерами Linux с помощью IoT Edge для Linux в Windows. Для разработки и отладки модуля с помощью IoT Edge для Linux в Windows.