You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

WSL 2环境下如何实现Windows与Linux进程无硬件串口环回通信

WSL2 与 Windows 端串口环回配置方案

配置失效原因

你之前尝试的COM1直接映射/dev/ttyS1不生效主要有两个核心原因:

  • WSL2 默认不会自动挂载Windows侧的串口设备,需要手动配置权限才可以访问
  • 如果本机没有接入真实物理串口,COM1本身是空设备,无法实现双向数据转发

可行方案1:Windows虚拟串口对+WSL2挂载(最贴合原生串口使用需求)

全程软件配置无需修改硬件,完全匹配原生串口调用逻辑:

  1. Windows侧创建虚拟串口对
    安装免费虚拟串口工具(例如com0com),创建一组绑定的虚拟串口对,比如设置为COM3<->COM4,两个串口默认已做环回绑定,一端发送的数据会自动转发到另一端
  2. Windows进程绑定串口
    让Windows端的测试进程直接绑定COM3,按需求配置波特率、校验位、停止位等串口参数即可
  3. WSL2侧配置串口权限
    打开WSL2终端,执行以下命令开放对应串口的访问权限(Windows侧COMx对应WSL侧/dev/ttySx,串口号数字保持一致):
    sudo chmod 666 /dev/ttyS4
    
    如果需要WSL重启后自动保留权限,可以把以上命令加入/etc/wsl.conf的boot执行配置项中,避免每次手动修改
  4. WSL侧进程绑定串口
    让WSL内的Linux测试进程绑定/dev/ttyS4,配置和Windows侧完全相同的串口参数,即可实现两端进程通过串口双向收发数据

可行方案2:socat伪串口映射(无需安装额外Windows软件)

如果不想安装第三方虚拟串口工具,可以通过网络转发实现伪串口通信,适合对串口硬件参数校验要求不高的测试场景:

  1. Windows侧配置串口TCP转发
    用PowerShell自带的TCP代理功能,把Windows侧进程的串口数据转发到本地TCP端口,例如5555端口
  2. WSL2侧安装socat工具
    执行以下命令安装socat:
    sudo apt update && sudo apt install socat -y
    
  3. 绑定TCP端口到WSL伪串口
    执行以下命令把Windows侧的转发端口映射为WSL内的伪串口设备:
    socat pty,link=/dev/ttyVIRT0,raw,echo=0 tcp:host.docker.internal:5555
    
  4. 两端进程分别绑定对应的串口/转发端口,即可实现双向数据通信

内容的提问来源于stack exchange,提问作者Claudio La Rosa

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.02 00:39:04