我需要帮助在 WSL 中将串行端口连接到 Ubuntu

我需要帮助在 WSL 中将串行端口连接到 Ubuntu

我尝试了很多方法来连接串行端口,但我不知道如何连接,因为它们都显示输入输出错误。系统确实识别出已连接了某些东西,如屏幕截图所示。

在此处输入图片描述

在此处输入图片描述

在此处输入图片描述

我尝试将编码编辑为/dev/ttyS3940以及/dev/ttyS2930我不确定如何连接端口。

答案1

COM1WSL 上的串行端口从 Windows 端(通过)映射COM4到 Linux 端/dev/ttyS1/dev/ttyS4看起来您COM4在 Python 中使用了该名称。使用与 Windows 端口号匹配的 Linux 设备名称。

`COM1:` - `/dev/ttyS1`
`COM2:` - `/dev/ttyS2`
`COM3:` - `/dev/ttyS3`

ETC。

答案2

花了大约 2 个小时寻找如何做到这一点。这就是我的做法。简而言之,请按照以下步骤操作:https://learn.microsoft.com/en-us/windows/wsl/connect-usb

我的配置:Windows 10/WSL2 步骤:

  1. 以管理员身份打开 Powershell
  2. 安装 usbip(按照链接说明)
  3. usbipd list
  4. 绑定 USB 以进行共享usbipd bind --busid 2-7(对我来说是 2-7)
  5. 验证usbip list其共享
  6. 附加到 wslusbipd attach --wsl --busid 2-7

执行的命令和输出的屏幕截图

答案3

在 Windows Subsystem for Linux 下访问物理硬件很棘手。您没有提到您正在运行的是 WSL1 还是 WSL2(实际上您根本没有提到 WSL,但从屏幕截图中可以明显看出,感谢 @popey 发现这一点并将其编辑到问题标签中)。

在 WSL2 下,您绝对无法直接访问 Ubuntu 内的串行端口。请记住,Ubuntu 在托管虚拟机内的命名空间容器(类似于 Docker 和其他容器技术)内运行。“托管”意味着 WSL 本身处理虚拟机的配置,因此用户对它的控制并不多。

对于 USB,你有一个解决方法,即USB/IP,但据我所知,除非您连接了 USB<->RS232 串行适配器,否则这不适用于非 USB 串行端口。即使这样,您可能仍需要在内核中构建对它的支持。

在 WSL1 下,情况可能会更好,但这取决于你需要的功能。WSL1 有效直接地在 Windows 上通过“syscall<->WinAPI 转换层”,这意味着它直接访问一些硬件。不过,这种访问仅限于 Windows 团队已实现的系统调用。在许多情况下,这不包括配置接口的调用。

如果您使用的是 WSL2(默认),那么我建议:

  • 初见此主题提到使用 CommTunnel(在 Windows 中)和 socat(在 Linux 中)来隧道传输串行端口流量。这并不容易,而且我也无法提供帮助 - 如果您需要这方面的帮助,也许可以去专门的 RoS 论坛咨询。

  • 或者,您可以尝试将 Ubuntu 发行版转换为 WSL1。 您可以使用以下命令从 PowerShell 执行此操作:

wsl -l -v
# Confirm the <distro_name>
wsl --set-version <distro-name> 1

如果这不起作用,您可能需要使用虚拟机而不是 WSL。

答案4

我自己在使用 WSL2 和 Ubuntu 时也遇到了这个问题,但我相信我找到了解决方法。

我编码和使用 VSC 的方式是打开 WSL,CD 到我想要的文件夹,然后在控制台中输入“code”。Windows 打开 VSC 并将其连接到 WSL,然后我使用内置的 bash 终端进行 NPM 等操作。这比使用 Windows 安装常见的开发工具要容易得多。

对于我正在从事的项目,我需要访问串行数据,因为我正在使用 UART,并且串行监视器提供了 /dev/ttyS3,理论上它应该可以工作,但正如有人指出的那样,WSL2 无法直接访问硬件。但事实并非如此。

什么有效?我显示了项目路径(shift+alt+r),打开了一个 Explorter 窗口。我的路径是:

\\wsl.localhost\Ubuntu\root\dev\uart

我打开了一个新的 VSC 窗口,然后手动打开路径。通常当我这样做时,我会被困在 PowerShell 终端上,但令我惊讶的是,它已经连接到 WSL 并且我有 bash。但是,串行监视器现在显示了 COM 端口,当我使用 ESP-Link 时,我能够读取数据。

成功!

相关内容