Вопрос или проблема
После 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
Я использовал следующие решения.
-
“usbipd не найден для ядра” при использовании USB/IP с WSL. Это показало:
hwdata уже самой новой версии (0.333-1).
linux-tools-5.4.0-77-generic уже самой новой версии (5.4.0-77.86).
0 обновлено, 0 новых установлено, 0 удалено и 0 не обновлено.
-
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). -
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
. -
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 не обновлено.
-
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
-
Понимание проблемы: Как указано в вашем запросе, узел
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
. -
Установка необходимых пакетов: В 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
-
Убедитесь в правильной настройке USB/IP: Возможно вам нужно обновить вашу систему с командой:
sudo apt update sudo apt upgrade
Это обеспечит установку всех актуальных обновлений для уже существующих пакетов.
-
Запуск команд из PowerShell: Для работы USB/IP в WSL, необходимо использовать PowerShell на стороне Windows, так как именно Windows делится устройствами через
usbipd
. Откройте PowerShell и выполните:usbipd wsl list
Это покажет список подключенных устройств. Для привязки устройства используйте:
usbipd wsl attach --busid <busid>
Убедитесь, что PowerShell запущен от имени администратора для выполнения этой команды.
-
Установите обновления для usbipd: Проверьте последнюю версию usbipd и обновите ее по ссылке на релизы. Это может устранить многие несовместимости.
-
Рекомендации по отладке: Если после выполнения всех вышеперечисленных шагов проблема сохраняется, проверьте:
- Совместимость версии ядра и установленных инструментов.
- Конфигурацию прав доступа в Windows и Linux для работы с устройствами USB.
- Возможные конфликты системных библиотек, особенно если
usbipd
сообщает об отсутствииlibusbip.so.0
.
Вывод
Для достижения успешного подключения и работы с USB-устройствами через WSL2, необходимо согласованное взаимодействие между Windows и Linux-системой. Следуя перечисленным шагам, вы сможете устранить ошибки, связанные с отсутствием usbipd для ядра. Как всегда, обновление программного обеспечения и выполнение команд от имени администратора может помочь избежать многих распространенных проблем.