Поддерживается ли usb в Bash в Ubuntu в Windows 10?

  • У меня нет файлов или путей про USB на dev/
  • Когда я подключаю флэш-диск, ничего не появляется на dev/ или mnt/ или media/ об этом.
  • sudo lsusb возвращает:

    unable to initialize libusb: -99
    

Что я должен сделать, чтобы включить доступ USB на Bash?

3 ответа

Решение

Хорошая новость: теперь возможно подключить USB-носители (включая FAT-форматированные) и сетевые папки с помощью drvfs в Windows 10:

Смонтируйте съемный носитель: (например, D:)

$ sudo mkdir /mnt/d
$ sudo mount -t drvfs D: /mnt/d

Для безопасного демонтажа

$ sudo umount /mnt/d

Вы также можете подключить сетевые ресурсы без smbfs:

$ sudo mount -t drvfs '\\server\share' /mnt/share

Вам нужно как минимум Build 16176, поэтому вам, возможно, придется подключиться к программе Windows Insider, а затем обновить Windows. Источник: https://blogs.msdn.microsoft.com/wsl/2017/04/18/file-system-improvements-to-the-windows-subsystem-for-linux/

Редактировать:
Согласно сообщению в блоге от Microsoft, эта функция теперь исправлена ​​в сборке 16176 и выше.

https://blogs.msdn.microsoft.com/wsl/2017/04/18/file-system-improvements-to-the-windows-subsystem-for-linux/

На данный момент нет поддержки USB. Только фиксированные диски будут монтироваться (автоматически) в / mnt.

Также не поддерживаются другие хранилища (кроме автоматически монтируемых фиксированных дисков), в том числе приводы CD-ROM, устройства обратной связи и общие сетевые ресурсы.

Вот ссылка на страницу обратной связи с разработчиком: Невозможно получить доступ к USB-устройствам из bash.

Хотя с помощью WSL 2 можно подключить диск, поддержка подключения USB-устройств к WSL, таких как флэш-накопитель или устройство чтения SD-карт, изначально не поддерживается в WSL.

Однако подключение USB-устройств к WSL IS теперь поддерживается с помощью проекта с открытым исходным кодом USBIPD-WIN . Чтобы подключить USB-устройство к дистрибутиву Linux, работающему через WSL 2:

  1. Установите проект USBIPD-WIN (скачайте и запустите установочный файл usbipd-win_x.msi).
  2. Установите инструменты USBIP и базу данных оборудования, открыв свой дистрибутив (например, Ubuntu) и запустив sudo apt install linux-tools-5.4.0-77-generic hwdata.
  3. Отредактируйте файл /etc/sudoers, связанный с вашим дистрибутивом Linux, чтобы разрешить разрешение: sudo visudoа затем найти secure_pathраздел, в начале раздела пути добавьте расположение инструментов: /usr/lib/linux-tools/5.4.0-77-generic.
  4. Убедитесь, что командная строка WSL открыта (поэтому виртуальная машина активна) и подключите USB-устройство.
  5. Откройте PowerShell и выведите список USB-устройств, подключенных к вашему компьютеру с Windows, с помощью команды: usbipd wsl list.
  6. Выберите идентификатор шины устройства, которое вы хотите подключить к WSL, и выполните следующую команду: usbipd wsl attach --busid <busid>.
  7. Откройте Ubuntu (или предпочтительную командную строку WSL) и перечислите подключенные USB-устройства: lsusb.

Вы должны увидеть только что подключенное устройство и иметь возможность взаимодействовать с ним с помощью обычных инструментов Linux. В зависимости от вашего приложения вам может потребоваться настроить правила udev, чтобы разрешить пользователям без полномочий root доступ к устройству.

Другие вопросы по тегам