“usbipd не найден для ядра” с WSL2 (Windows 10)

Вопрос или проблема

После usbipd wsl list

было возвращено
WARNING: usbipd не найден для ядра 5.10.16.3-microsoft Возможно, вам нужно установить следующие пакеты для этого конкретного ядра: linux-tools-5.10.16.3-microsoft-standard-WSL2 linux-cloud-tools-5.10.16.3-microsoft-standard-WSL2

Также вы можете установить один из следующих пакетов, чтобы оставаться в курсе обновлений: linux-tools-standard-WSL2 linux-cloud-tools-standard-WSL2

Я использовал следующие решения.

  1. “usbipd не найден для ядра” при использовании USB/IP с WSL. Это показало: hwdata уже самой новой версии (0.333-1). linux-tools-5.4.0-77-generic уже самой новой версии (5.4.0-77.86). 0 обновлено, 0 новых установлено, 0 удалено и 0 не обновлено.

  2. https://superuser.com/questions/1694723/access-mobile-device-filesystem-from-wsl После установки jmtpfs и sudo jmtpfs -o allow_other /media/android/, было возвращено No mtp devices found., несмотря на то, что Android-устройство отображается в файловом менеджере Windows 10 (подключено через MTP).

  3. https://superuser.com/questions/1686414/e-unable-to-locate-package-linux-tools-5-4-0-77-generic-on-wsl-debian-11/1688086#1688086. Но после sudo apt install usbip hwdata usbutils было возвращено E: Не удалось найти пакет usbip.

  4. https://developer.ridgerun.com/wiki/index.php/How_to_setup_and_use_USB/IP это вернуло linux-tools-generic уже самой новой версии (5.4.0.139.137). 0 обновлено, 0 новых установлено, 0 удалено и 0 не обновлено.

  5. https://www.geekbits.io/how-to-install-usbip-tools-on-debian/ sudo make install вернуло make[1]: Entering directory '/mnt/d/test/libsrc' CC libusbip_la-names.lo /bin/bash: ../libtool: No such file or directory make[1]: *** [Makefile:460: libusbip_la-names.lo] Error 127 make[1]: Leaving directory '/mnt/d/test/libsrc' make: *** [Makefile:498: install-recursive] Error 1

И после sudo usbipd -D было возвращено usbipd: error while loading shared libraries: libusbip.so.0: cannot open shared object file: No such file or directory.

В последнюю очередь, sudo apt update и sudo apt upgrade показали, что все пакеты обновлены.

Спасибо заранее.

Из моего чтения вопроса, возможно, нужно связать не только клиентскую исполняемую программу usbip, но и демон утилиту usbipd (учтите конечную d)? Это значит, кроме

sudo update-alternatives --install /usr/local/bin/usbip usbip $(command -v ls /usr/lib/linux-tools/*/usbip | tail -n1) 20

может потребоваться

sudo update-alternatives --install /usr/local/bin/usbipd usbipd $(command -v ls /usr/lib/linux-tools/*/usbipd | tail -n1) 20

Благодарю @Nielo за указание на то, что вы пытаетесь запустить usbipd (а не uspip, как я изначально думал).

В WSL:

  • Демон USB/IP (usbipd.exe) запускается в Windows, так как именно Windows делится (через usbipd bind) устройством.
  • Клиент USB/IP (usbip) – это то, что вы должны запускать в Ubuntu, чтобы подключиться к устройству, которым делится демон Windows.

Таким образом, из PowerShell в Windows попробуйте запустить usbipd list (или usbipd wsl list)

Примечание: Чтобы запустить usbipd bind, вам нужно быть в администраторском PowerShell.

Помните, что, пока вы пытаетесь подключить устройство к вашей основной дистрибуции, и вы настроили команду usbip в Ubuntu, как упомянуто в моем ответе здесь, все команды usbipd могут выполняться из администраторского PowerShell.

Например:

usbipd wsl list
# Идентифицировать BUSID устройства для подключения
usbipd wsl attach --busid <busid>

Это делает две вещи:

  • Привязывает/делится устройством из Windows через демона USB/IP
  • Отправляет соответствующую команду в Ubuntu для подключения к устройству.

Получена та же ошибка. После обновления usbipd https://github.com/dorssel/usbipd-win/releases всё работает хорошо.

Ответ или решение

Когда вы сталкиваетесь с предупреждением "usbipd not found for kernel 5.10.16.3-microsoft" при работе с WSL2 на Windows 10, это указывает на отсутствие необходимых инструментов и пакетов для работы с конкретной версией ядра. Рассмотрим шаги, необходимые для решения данной проблемы.

Шаги по решению проблемы "usbipd not found for kernel" в WSL2

  1. Понимание проблемы: Как указано в вашем запросе, узел usbipd не найден для ядра 5.10.16.3-microsoft. Возможно, отсутствуют пакеты linux-tools-5.10.16.3-microsoft-standard-WSL2 и linux-cloud-tools-5.10.16.3-microsoft-standard-WSL2.

  2. Установка необходимых пакетов: В WSL используйте команду apt-get install, чтобы установить эти пакеты:

    sudo apt-get install linux-tools-5.10.16.3-microsoft-standard-WSL2 linux-cloud-tools-5.10.16.3-microsoft-standard-WSL2
  3. Убедитесь в правильной настройке USB/IP: Возможно вам нужно обновить вашу систему с командой:

    sudo apt update
    sudo apt upgrade

    Это обеспечит установку всех актуальных обновлений для уже существующих пакетов.

  4. Запуск команд из PowerShell: Для работы USB/IP в WSL, необходимо использовать PowerShell на стороне Windows, так как именно Windows делится устройствами через usbipd. Откройте PowerShell и выполните:

    usbipd wsl list

    Это покажет список подключенных устройств. Для привязки устройства используйте:

    usbipd wsl attach --busid <busid>

    Убедитесь, что PowerShell запущен от имени администратора для выполнения этой команды.

  5. Установите обновления для usbipd: Проверьте последнюю версию usbipd и обновите ее по ссылке на релизы. Это может устранить многие несовместимости.

  6. Рекомендации по отладке: Если после выполнения всех вышеперечисленных шагов проблема сохраняется, проверьте:

    • Совместимость версии ядра и установленных инструментов.
    • Конфигурацию прав доступа в Windows и Linux для работы с устройствами USB.
    • Возможные конфликты системных библиотек, особенно если usbipd сообщает об отсутствии libusbip.so.0.

Вывод

Для достижения успешного подключения и работы с USB-устройствами через WSL2, необходимо согласованное взаимодействие между Windows и Linux-системой. Следуя перечисленным шагам, вы сможете устранить ошибки, связанные с отсутствием usbipd для ядра. Как всегда, обновление программного обеспечения и выполнение команд от имени администратора может помочь избежать многих распространенных проблем.

Оцените материал
Добавить комментарий

Капча загружается...