【问题标题】:Is usb supported on Bash on Ubuntu on Windows 10? [closed]Windows 10 上的 Ubuntu 上的 Bash 是否支持 USB? [关闭]
【发布时间】:2023-03-20 08:06:01
【问题描述】:
  • 我在 dev/上没有关于 usb 的文件或路径
  • 当我插入闪存盘时,dev/ 或 mnt/ 或 media/ 上没有显示任何关于它的内容。
  • sudo lsusb 返回:

    unable to initialize libusb: -99
    

我应该怎么做才能在 bash 上启用 USB 访问?

【问题讨论】:

  • 最新版的Windows 10(我的是10.0.16299.248)会自动挂载你的外接U盘到/mnt/<drive letter>下
  • 完整的 USB 设备支持仍在计划中。您可以在WSL UserVoice 上投票
  • WSL UserVoice 已关闭,新问题是github.com/microsoft/WSL/issues/2195

标签: linux windows bash ubuntu windows-subsystem-for-linux


【解决方案1】:

好消息,现在可以在 Windows 10 上使用 drvfs 挂载 USB 媒体(包括 FAT 格式)和网络共享:

装载可移动媒体:(例如 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/

【讨论】:

  • 我按照描述安装了 D: 驱动器,它默默地向我返回了一个提示,但可惜那里什么都没有(/mnt/d 中没有数据)。 umount 说没有安装。嗯..你怎么知道当前的构建是什么?
  • 要获取当前内部版本号,请打开cmd 命令提示符并键入ver。它应该报告Microsoft Windows [Version 10.0.16176] 或更新版本。如果不选择加入 Windows 预览体验计划。希望这会有所帮助!
  • 如何挂载非驱动器的其他硬件?
  • @cweitat:目前不可能。支持这些问题:wpdev.uservoice.com/forums/…wpdev.uservoice.com/forums/…
【解决方案2】:

编辑:
根据 Microsoft 的一篇博文,此功能现已从 build 16176 及更高版本中修复。

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

目前不支持 USB。只有固定磁盘会(自动)挂载到 /mnt 中。

也不支持其他存储(自动安装的固定磁盘除外),这包括 CD-ROM 驱动器、环回设备和网络共享。

这里是开发者反馈页面的链接: Unable to access USB devices from bash

【讨论】:

  • 这是否意味着SCP转移也不起作用?例如将文件传输到 beaglebone 或其他嵌入式设备等。
  • SCP 工作正常。它只能访问尚未工作的非固定 Windows 驱动器。
  • 轻微的解决方法:如果将开发板连接到 PC,则可以与 Windows 同步文件,并在 PC 上使用 Bash 访问 Windows 文件系统中的相同文件!
  • 他们一定已经修复了,因为我使用的是 build 16299,并且我的外部 USB 驱动器 (exFAT) 已自动挂载。
【解决方案3】:

虽然可以mount a drive using WSL 2,但 WSL 本身并不支持将 USB 设备连接到 WSL,例如闪存驱动器或 SD 卡读卡器。

Connecting USB devices to WSL 现在支持使用USBIPD-WIN opensource project。要将 USB 设备连接到通过 WSL 2 运行的 Linux 发行版:

  1. 安装USBIPD-WIN project(下载并运行usbipd-win_x.msi 安装程序文件)。
  2. 通过打开您的发行版(即 Ubuntu)并运行 sudo apt install linux-tools-5.4.0-77-generic hwdata 来安装 USBIP 工具和硬件数据库。
  3. 编辑与您的 Linux 发行版关联的 /etc/sudoers 文件以允许权限:sudo visudo,然后找到 secure_path 部分,在路径部分的开头,添加工具位置:/usr/lib/linux-tools/5.4.0-77-generic。李>
  4. 确保 WSL 命令行已打开(因此 VM 处于活动状态)并连接您的 USB 设备。
  5. 打开 PowerShell 并使用以下命令列出连接到 Windows 计算机的 USB 设备:usbipd wsl list。
  6. 选择您要连接到 WSL 的设备的总线 ID 并运行以下命令:usbipd wsl attach --busid <busid>。
  7. 打开 Ubuntu(或您首选的 WSL 命令行)并列出连接的 USB 设备:lsusb。

您应该会看到刚刚连接的设备,并且能够使用普通的 Linux 工具与其进行交互。根据您的应用程序,您可能需要配置 udev 规则以允许非 root 用户访问设备。

【讨论】:

    猜你喜欢
    • 2017-03-12
    • 1970-01-01
    • 2017-06-06
    • 2023-03-30
    • 2015-11-16
    • 2016-12-19
    • 2015-10-21
    • 2016-10-03
    • 2017-02-14
    相关资源
    最近更新 更多