Usb sharing linux windows

Saved searches

Use saved searches to filter your results more quickly

You signed in with another tab or window. Reload to refresh your session. You signed out in another tab or window. Reload to refresh your session. You switched accounts on another tab or window. Reload to refresh your session.

Windows software for sharing locally connected USB devices to other machines, including Hyper-V guests and WSL 2.

License

dorssel/usbipd-win

This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.

Name already in use

A tag already exists with the provided branch name. Many Git commands accept both tag and branch names, so creating this branch may cause unexpected behavior. Are you sure you want to create this branch?

Sign In Required

Please sign in to use Codespaces.

Launching GitHub Desktop

If nothing happens, download GitHub Desktop and try again.

Launching GitHub Desktop

If nothing happens, download GitHub Desktop and try again.

Launching Xcode

If nothing happens, download Xcode and try again.

Launching Visual Studio Code

Your codespace will open once ready.

There was a problem preparing your codespace, please try again.

Latest commit

Git stats

Files

Failed to load latest commit information.

README.md

Windows software for sharing locally connected USB devices to other machines, including Hyper-V guests and WSL 2.

This software requires Microsoft Windows 8.1 x64 / Microsoft Windows Server 2012 or newer; it does not depend on any other software.

Run the installer (.msi) from the latest release on the Windows machine where your USB device is connected.

Alternatively, use the Windows Package Manager:

  • A service called usbipd (display name: USBIP Device Host).
    You can check the status of this service using the Services app from Windows.
  • A command line tool usbipd .
    The location of this tool will be added to the PATH environment variable.
  • A firewall rule called usbipd to allow all local subnets to connect to the service.
    You can modify this firewall rule to fine tune access control.
    ℹ️
    If you are using a third-party firewall, you may have to reconfigure it to allow incoming connections on TCP port 3240.
Читайте также:  Linux контроллер домена centos

By default devices are not shared with USBIP clients. To lookup and share devices, open a command prompt as an Administrator and use the usbipd tool. For example:

usbipd --help usbipd list usbipd bind --busid=BUSID>

From another (possibly virtual) machine running Linux, use usbip to claim the USB device:

usbip list --remote=HOST> sudo usbip attach --remote=HOST> --busid=BUSID>

A list of tested devices can be found on the wiki. Please file an issue if your device is not working.

You can use the usbipd wsl subcommand to share and connect a device with a single command. For example, open a command prompt:

usbipd wsl --help usbipd wsl list usbipd wsl attach --busid=BUSID>

ℹ️
Currently, WSL 2 does not support USB devices by default.
As a workaround, instructions on how to setup a USBIP client for WSL 2 can be found on the wiki.

Andrew Leech has created a convenient GUI for those who prefer that over a CLI, see his GitLab project.

Uninstall via Add/Remove Programs or via Settings/Apps.

Alternatively, use the Windows Package Manager:

There should be no left-overs; please file an issue if you do find any.

About

Windows software for sharing locally connected USB devices to other machines, including Hyper-V guests and WSL 2.

Источник

Подключение USB устройств в WSL (Windows для Linux) и Hyper-V

date

13.09.2022

user

itpro

directory

Linux, Windows 10, Windows 11

comments

Комментариев пока нет

Для получения прямого доступа к физическим USB устройствам компьютера из подсистемы Windows для Linux (WSL2) или виртуальной машины Hyper-V вы можете open-source проект usbipd-win. Это проект позволяет настроить сквозную передачу внешнего USB устройства, подключенного к хостовой Windows, в любой дистрибутив Linux, запущенный в виде WSL или в виртуальные машины. Это позволяет выполнять любые действия с USB устройствами из Linux (прошивка Android устройств/ADB/Fastboot, доступ к смарт-картам, работа с оборудованием Arduino и т.д.).

В usbipd-win используется протокол USB/IP для перенаправления USB трафика через виртуальный сетевой интерфейс между WSL и хостовой Windows. Сначала мы настроим клиент USB/IP в Linux (WSL), и затем установим и установим и запустим серверную часть usbipd-win на Windows и прокинем USB устройство в Linux.

Usbipd-win поддерживает версии, начиная с Windows 8.1 x64 и Windows Server 2012 R2, и позволяет предоставить общий доступ к локальным USB устройствам Windows другим виртуальным машинам (включая WSL2 и гостевые ОС Linux на Hyper-V). С помощью встроенных средств Hyper-V ранее можно было пробрасывать только USB накопители или другие виды USB устройства через довольно ограниченный режим Enhanced Session Mode.

Проект usbipd-win доступен на GitHub (https://github.com/dorssel/usbipd-win). Вы можете скачать и установить его вручную (доступен установочный MSI файл), но гораздо быстрее установить приложение с помощью встроенного менеджера пакетов winget.

winget install —interactive —exact dorssel.usbipd-win

установка dorssel.usbipd-win

Программа создаст в Windows отдельную службу usbipd (USBIP Device Host): «C:\Program Files\usbipd-win\usbipd.exe» server, которая слушает на порту TCP 3240

служба USBIP Device Host

Для программы usbipd.exe в Windows Defender Firewall создано правило ( usbipd ), разрешающее доступ на порт TCP 3240 с компьютеров в локальной сети.

Теперь настроим поддержку USBIP в среде Windows Subsystem for Linux. Проверьте, что версия ядра в вашем образе не ниже 5.10.60.1 (в нашем примере для демонстрации используется WSL 2 с образом Ubuntu 22.04 LTS):

Теперь нужно установить инструменты для работы с USB/IP и базу с идентификаторами USB устройств.

$ sudo apt install linux-tools-virtual hwdata
$ sudo update-alternatives —install /usr/local/bin/usbip usbip `ls /usr/lib/linux-tools/*/usbip | tail -n1` 20

установка linux-tools-virtual для пробросаUSB

$ sudo apt-get install usbip hwdata usbutils
Установка USB/IP утилит в WSL образа на базе rpm (CentOS/Oracle Linux):
$ sudo rpm —import https://www.elrepo.org/RPM-GPG-KEY-elrepo.org
$ sudo rpm -ivh http://www.elrepo.org/elrepo-release-7.0-3.el7.elrepo.noarch.rpm
$ sudo yum install kmod-usbip
$ sudo yum install usbip-utils
$ sudo yum install hwdata

Теперь откройте командную строку с правами администратора на хостовом Windows компьютере и выведите список USB устройств:

Как вы видите, ни одно из USB устройств не опубликовано (Not shared). Вы можете предоставить общий доступ к USB устройству по его BUSID. В моем примере я хочу прокинуть в WSL флешку (USB Mass Storage Device) с BUISID 4-2.

usbipd wsl attach —busid 4-2

usbipd открыть общий доступ к usb устройству в WSL через usboverip

  • Если вы используете WSL 1 (не поддерживается в usbip), появится ошибка: sbipd: error: The specified WSL distribution is using WSL 1, but WSL 2 is required. Learn how to upgrade at https://docs.microsoft.com/windows/wsl/basic-commands#set-wsl-version-to-1-or-2.
  • Если появится ошибка: usbipd: error: WSL kernel is not USBIP capable, обновите WSL систему командой:
    wsl —update

Проверьте, что ваша флешка была подключена к WSL:

usb устройство пробросить в Windows Subsystem for Linux

Если вы хотите прокинуть ваше USB устройство на другой компьютер с Linux ОС по сети (это может быть виртуальная машина с гостевой Linux на Hyper-V, или любом другом гипервизоре), сначала получить список опубликованных USB устройств:

$ usbip list —remote=192.168.31.20

Теперь можно подключить нужное USB по его ID:

$ sudo usbip attach -remote=192.168.31.20 —busid=4-2

В этом примере указан IP адрес хоста Windows, где запущен сервер usbipd-win.

Теперь ваши Linux утилиты должны увидеть подключенное USB устройство.

Чтобы отключить общий доступ к USB устройству в Windows:

usbipd wsl detach —busid 4-2

Обратите внимание, что подключенные таким образом USB накопители не определяются как блочные устройства в WSL. Проверьте это командой lsblk. Дело в том, что в ядре WSL отсутствует драйвера для USB накопителей (чтобы добавить их придется пересобрать ядро).

В обычных дистрибутивах Linux вы сможете смонтировать файловую систему прокинутых USB накопителей стандартным образом.

Поэтому, если вам нужно смонтировать внешнюю USB флешку, диск, SD карту в WSL, нужно использовать такие команды:

$ sudo mkdir /mnt/f
$ sudo mount -t drvfs f: /mnt/f

смонтировать USB диск в WSL Linux

Таким образом usbipd-win можно использовать для сквозной передачи физических USB устройств из Windows в WSL, в виртуальные машину или физические компьютер с Linux по сети с помощью USBOverIP

Предыдущая статьяПредыдущая статья Следующая статья Следующая статья

page

page

page

Mailcow: готовый почтовый сервер на postfix+dovecot+SOGo на Docker контейнерах

Установка KMS сервера vlmcsd на Linux для активации Windows и Office

Установка и настройка прокси сервера Squid в Linux

Настройка аутентификации в Nginx через Active Directory (LDAP)

Источник

Оцените статью
Adblock
detector