Linux创造虚拟串口 方案一socat推荐最简单、无需编译内核模块、临时即用# Debian/Ubuntu/银河麒麟 sudo apt update sudo apt install socat -ysudo apt install socat -y 是什么意思sudo以 **管理员root 超级权限** 执行后面的命令安装软件需要系统最高权限普通用户直接运行会报错权限不足。aptDebian/Ubuntu/ 银河麒麟、Deepin这类基于 Debian 体系 Linux 系统的软件包管理器负责下载、安装、卸载系统软件。installapt 的子命令执行安装操作。socat要安装的软件包名称。socat 全称Socket CAT号称超级万能端口转发工具功能极强端口映射、TCP/UDP 转发、套接字代理、内网穿透、双向数据流转发、绑定端口监听等运维、内网穿透、网络调试常用。-y自动确认所有安装询问。 不加-y安装过程中会弹出[Y/n]让你手动输入 Y 确认加了直接全自动一路安装完成。创建一对互通虚拟串口固定设备名执行这条命令生成/dev/ttyV0↔/dev/ttyV1双向连通虚拟串口sudo socat -d -d pty,raw,echo0,link/dev/ttyV0 pty,raw,echo0,link/dev/ttyV1整体作用创建一对互相直通的虚拟串口伪终端 PTY往/dev/ttyV0写数据立刻能从/dev/ttyV1读到往/dev/ttyV1写数据立刻能从/dev/ttyV0读到常用于串口程序调试、嵌入式代码模拟串口、Linux 下模拟两个设备串口互通、Qt 串口开发测试、Modbus 调试等场景。分段拆解参数1. sudosocat创建软链接到/dev/目录属于系统设备目录操作普通用户无权限必须提权。2. socat超级万能的双向数据转发工具全称Socket CAT可以在任意两类数据流之间搭桥串口、TCP、UDP、文件、管道、伪终端、IPv6、SSL 等。3.-d -d日志参数两个-d代表调试级别单个-d基础警告输出两个-d打开详细调试日志输出端口打开、数据收发、错误、EOF等过程 想更详细可以-ddd日常测试-d -d足够。4. 第一个地址pty,raw,echo0,link/dev/ttyV0关键字pty指定使用伪终端Pseudo TerminalLinux 内核虚拟串口硬件不存在纯软件模拟串口设备。参数逐个解释raw原始模式关闭终端行规则处理不做回车换行转换\r↔\n不自动替换不处理退格、CtrlC、CtrlD、信号中断二进制数据透传串口二进制通信必备Modbus、协议帧、十六进制数据包必须加 rawecho0关闭本地回显echo1默认自己发什么终端立刻回显什么类似敲命令屏幕重复打出字符echo0关闭回显完全模拟真实物理串口行为发出去的数据只对端接收本地不回显link/dev/ttyV0给内核自动分配的随机 PTY比如/dev/pts/3创建固定符号链接到/dev/ttyV0。重点内核真实设备是/dev/pts/XttyV0只是软链接方便程序固定路径打开串口。5. 第二个地址pty,raw,echo0,link/dev/ttyV1和上面完全一致创建另一端虚拟串口链接固定为/dev/ttyV1。底层逻辑socat 内部建立双向管道应用程序A → /dev/ttyV0 → socat 内部缓冲区 → /dev/ttyV1 → 应用程序B 应用程序B → /dev/ttyV1 → socat 内部缓冲区 → /dev/ttyV0 → 应用程序A全双工双向互通。权限放行必须否则程序打不开新开终端执行sudo chmod 666 /dev/ttyV0 /dev/ttyV16 110 可读可写不可执行通信测试验证终端 1接收cat /dev/ttyV0终端 2发送echo hello serial /dev/ttyV1终端 1 会立刻收到字符串代表双向通路正常。cat /dev/ttyV0 是什么意思cat Linux 读取文件 / 设备内容并打印到屏幕的命令 /dev/ttyV0 你用 socat 创建的虚拟串口 0 设备文件 整句读取虚拟串口 ttyV0 上收到的所有数据实时打印在终端上为什么执行会提示「设备或资源忙」Linux 串口设备是独占打开 Qt 程序已经调用 QSerialPort 打开了 /dev/ttyV0 占用句柄 系统不允许第二个程序cat、cutecom、minicom再次打开同一个端口直接报错 设备或资源忙。使用cat 查看信息如果发送的是ASCII码接收显示正常。如果发送的是16进制数接收显示是乱码。cat命令只会把读到的字节当成 UTF-8/ASCII 可打印字符渲染0x200x7F 可见 ASCII → 正常文字显示0x00~0x1F、0x80~0xFF 控制字节 / 高位十六进制 → 终端无法解析直接输出方块、问号、特殊符号也就是你看到的乱码乱码只是终端界面显示问题串口底层收到的二进制字节 100% 是正确的没有丢包、没有变值。正确查看十六进制原始数据的命令替代 cat方式 1hexdump 最直观推荐hexdump -C /dev/ttyV1好像没有效果原因:hexdump 打开方式本身有缺陷阻塞读取不灵敏hexdump /dev/ttyV1一次性读取不会持续实时监听。替换成持续实时抓流命令稳定可用stdbuf -i0 -o0 cat /dev/ttyV1 | hexdump -C这条会一直阻塞等待数据流Qt 一发数据立刻打印十六进制。现在可以显示了可以查看信息。但感觉信息有点卡顿而且一次只显示一行不全不完整。原因:hexdump默认按块刷新、按行格式化输出小包数据会攒到缓冲区才打印造成卡顿尝试方案持续实时抓包写入文件 实时 tail 看兼顾存日志 实时查看终端 1后台持续保存所有串口原始数据cat /dev/ttyV1 serial_recv.bin 终端 2实时十六进制滚动查看tail -f serial_recv.bin | stdbuf -oL xxd -Cxxd 是什么通俗版xxd是 Linux 自带的二进制文件 / 二进制流十六进制查看工具预装在绝大多数系统Ubuntu、银河麒麟、Debian 都自带。作用一句话把一堆看不见的原始二进制字节翻译成人类能看懂的 16 进制格式打印出来替代你之前卡顿、攒包输出的hexdump。

相关新闻

最新新闻

基于大语言模型的思维导图自动生成:提示词工程与工作流实践

基于大语言模型的思维导图自动生成:提示词工程与工作流实践

1. 从“手动绘制”到“一键生成”:思维导图工作流的范式转移还在为整理会议纪要、梳理项目思路或者规划学习路径而对着空白的画布发呆吗?传统的思维导图软件,无论是XMind还是MindMaster,其核心工作流依然是“手动构建”。你需要从…

2026/7/30 6:40:24
GitHub 扩大恶意依赖告警后,我给 npm 项目加了一套安装前安全检查

GitHub 扩大恶意依赖告警后,我给 npm 项目加了一套安装前安全检查

很多开发者对 npm 依赖安全的理解,还停留在:npm audit只要没有高危漏洞,就认为依赖没有问题。但已知漏洞和恶意软件包并不是同一类风险。一个包可能没有公开 CVE,却在安装阶段执行恶意脚本;也可能刚发布几个小时&#…

2026/7/30 6:40:24
构建高质量Android APK样本库:从AndroZoo数据获取到自动化管理实践

构建高质量Android APK样本库:从AndroZoo数据获取到自动化管理实践

1. 项目概述:为什么我们需要一个高质量的APK样本库?在移动安全研究、恶意软件分析、应用行为检测模型训练,甚至是合规性测试等领域,一个高质量、标注清晰的Android应用(APK)样本库是至关重要的基础设施。无…

2026/7/30 6:40:24
GEE平台全球农田分布数据应用:从宏观统计到农业水资源压力评估

GEE平台全球农田分布数据应用:从宏观统计到农业水资源压力评估

1. 项目缘起:为什么我们需要一张全球农田地图?作为一名长期与遥感数据打交道的从业者,我经常被问到这样一个问题:“有没有一张现成的、能直接用的全球农田分布图?” 无论是做全球粮食安全评估、农业水资源管理&#xf…

2026/7/30 6:40:24
LVGL移植实战:从硬件驱动到性能优化的嵌入式GUI开发指南

LVGL移植实战:从硬件驱动到性能优化的嵌入式GUI开发指南

1. 项目概述:为什么LVGL移植是嵌入式GUI开发的关键一步如果你正在开发一个带屏幕的嵌入式设备,无论是智能手表、工业HMI面板,还是家用电器的小显示屏,最终都绕不开一个问题:如何让界面变得好看又好用?自己从…

2026/7/30 6:40:24
苏州贴标机厂家盘点:主流品牌技术特点与制造业选型指南

苏州贴标机厂家盘点:主流品牌技术特点与制造业选型指南

苏州贴标机厂家盘点:主流品牌技术特点与制造业选型指南 当下工业自动化普及率持续提升,电子制造、精密结构件、半导体、新能源等行业,对贴标工艺的标准化、精细化、稳定性要求持续升级。贴标机作为产线溯源管理、外观规整、品质管控的核心配套…

2026/7/30 6:35:24

月新闻