在 Windows 10 Ubuntu 上 Bash 上是否支持 USB?
Is usb supported on Bash on Ubuntu on Windows 10?
- 我在 dev/
上没有关于 usb 的文件或路径
- 当我插入闪存盘时,dev/ 或 mnt/ 或 media/ 上没有任何关于它的信息。
sudo lsusb
returns:
unable to initialize libusb: -99
我应该怎么做才能在 bash 上启用 USB 访问?
Edit:
According to a blog post from Microsoft this feature is now fixed from build 16176 and forward.
目前不支持 USB。 /mnt 中只会挂载固定磁盘(自动)。
也不支持其他存储(自动安装的固定磁盘除外),包括 CD-ROM 驱动器、环回设备和网络共享。
这里是 link 开发者反馈页面:
Unable to access USB devices from bash
好消息,现在可以在 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/
虽然可以 mount a drive using WSL 2,但 WSL 本身并不支持将 USB 设备(如闪存驱动器或 SD 卡)连接到 WSL reader。
Connecting USB devices to WSL IS now supported using the USBIPD-WIN opensource project 不过。要通过 WSL 2 将 USB 设备连接到 Linux 发行版 运行ning:
- 安装 USBIPD-WIN project(下载并 运行 usbipd-win_x.msi 安装程序文件)。
- 通过打开您的发行版(即 Ubuntu)和 运行ning
sudo apt install linux-tools-5.4.0-77-generic hwdata
. 安装 USBIP 工具和硬件数据库
- 编辑与您的 Linux 发行版关联的 /etc/sudoers 文件以允许权限:
sudo visudo
然后在路径部分的开头找到 secure_path
部分,添加工具位置:/usr/lib/linux-tools/5.4.0-77-generic
.
- 确保 WSL 命令行已打开(因此 VM 处于活动状态)并连接您的 USB 设备。
- 打开 PowerShell 并使用以下命令列出连接到 Windows 机器的 USB 设备:
usbipd wsl list
.
- Select 您要附加到 WSL 的设备的总线 ID 和 运行 此命令:
usbipd wsl attach --busid <busid>
.
- 打开 Ubuntu(或您首选的 WSL 命令行)并列出连接的 USB 设备:
lsusb
.
您应该会看到刚刚连接的设备,并能够使用普通 Linux 工具与其进行交互。根据您的应用程序,您可能需要配置 udev 规则以允许非根用户访问设备。
- 我在 dev/ 上没有关于 usb 的文件或路径
- 当我插入闪存盘时,dev/ 或 mnt/ 或 media/ 上没有任何关于它的信息。
sudo lsusb
returns:unable to initialize libusb: -99
我应该怎么做才能在 bash 上启用 USB 访问?
Edit:
According to a blog post from Microsoft this feature is now fixed from build 16176 and forward.
目前不支持 USB。 /mnt 中只会挂载固定磁盘(自动)。
也不支持其他存储(自动安装的固定磁盘除外),包括 CD-ROM 驱动器、环回设备和网络共享。
这里是 link 开发者反馈页面: Unable to access USB devices from bash
好消息,现在可以在 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/
虽然可以 mount a drive using WSL 2,但 WSL 本身并不支持将 USB 设备(如闪存驱动器或 SD 卡)连接到 WSL reader。
Connecting USB devices to WSL IS now supported using the USBIPD-WIN opensource project 不过。要通过 WSL 2 将 USB 设备连接到 Linux 发行版 运行ning:
- 安装 USBIPD-WIN project(下载并 运行 usbipd-win_x.msi 安装程序文件)。
- 通过打开您的发行版(即 Ubuntu)和 运行ning
sudo apt install linux-tools-5.4.0-77-generic hwdata
. 安装 USBIP 工具和硬件数据库
- 编辑与您的 Linux 发行版关联的 /etc/sudoers 文件以允许权限:
sudo visudo
然后在路径部分的开头找到secure_path
部分,添加工具位置:/usr/lib/linux-tools/5.4.0-77-generic
. - 确保 WSL 命令行已打开(因此 VM 处于活动状态)并连接您的 USB 设备。
- 打开 PowerShell 并使用以下命令列出连接到 Windows 机器的 USB 设备:
usbipd wsl list
. - Select 您要附加到 WSL 的设备的总线 ID 和 运行 此命令:
usbipd wsl attach --busid <busid>
. - 打开 Ubuntu(或您首选的 WSL 命令行)并列出连接的 USB 设备:
lsusb
.
您应该会看到刚刚连接的设备,并能够使用普通 Linux 工具与其进行交互。根据您的应用程序,您可能需要配置 udev 规则以允许非根用户访问设备。