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。

相关新闻

Obsidian数据迁移终极指南:如何将Notion、Evernote等笔记应用快速导入Obsidian

Obsidian数据迁移终极指南:如何将Notion、Evernote等笔记应用快速导入Obsidian

Obsidian数据迁移终极指南:如何将Notion、Evernote等笔记应用快速导入Obsidian 【免费下载链接】obsidian-importer Convert your data to Markdown files you can use in Obsidian. Works with Apple Notes, OneNote, Evernote, Notion, Google Keep, and many oth…

2026/10/16 5:37:13 阅读更多 →
基于SpringBoot的果园生产溯源管理系统(源码+LW+部署讲解)

基于SpringBoot的果园生产溯源管理系统(源码+LW+部署讲解)

温馨提示:本人主页置顶文章(点我)开头有 CSDN 平台官方提供的学长联系方式的名片! 温馨提示:本人主页置顶文章(点我)开头有 CSDN 平台官方提供的学长联系方式的名片! 温馨提示:本人主页置顶文章(点我)开头有 CSDN 平台…

2026/10/16 5:43:18 阅读更多 →
Dify 自托管部署教程:使用 Docker Compose 在 Linux 服务器运行完整服务栈

Dify 自托管部署教程:使用 Docker Compose 在 Linux 服务器运行完整服务栈

Dify 的可视化编排界面把模型调用、条件分支、知识检索和工具节点放在同一张画布上。对自托管部署而言,难点不在启动某个 Web 容器,而在于同时管理 API、异步任务、数据库、缓存、向量存储、插件服务、代码沙箱和反向代理。 工作流画布用于连接模型、检索…

2026/10/16 5:48:03 阅读更多 →

最新新闻

用图论解析网络攻击路径:建模、算法与落地实践

用图论解析网络攻击路径:建模、算法与落地实践

提到“基于图论的网络攻击路径分析”,很多人第一反应是学术论文里才有的概念。但我在实际安全评估中,用这套方法解决过非常具体的问题:某企业准备攻防演练前,安全负责人问我,假设最边缘的一台办公终端已经被攻破&#…

2026/10/18 2:08:56 阅读更多 →
Dify实战:大模型应用开发、RAG知识库与Agent工作流指南

Dify实战:大模型应用开发、RAG知识库与Agent工作流指南

1. Dify是什么:先解决一个最实际的问题先说个场景。一个做电商运营的朋友,想搞一个"客服机器人",能自动回答用户关于退货政策、物流进度、优惠券使用的问题。他一开始的路径是:找大模型API、写Prompt、建知识库、处理对…

2026/10/18 2:08:56 阅读更多 →
C#上位机通过MX Component读写三菱PLC D区和M区实战指南

C#上位机通过MX Component读写三菱PLC D区和M区实战指南

做上位机的人,几乎都会遇到要和PLC打交道的场景。前段时间接了一个项目,要求用C#写一套设备数据采集程序,把现场几十台PLC的工艺参数和生产状态实时读上来,存到数据库里供MES调用。对方只给了一个要求:用三菱的MX Comp…

2026/10/18 2:08:55 阅读更多 →
Flutter ScaffoldMessenger实战:SnackBar消息通知机制与避坑指南

Flutter ScaffoldMessenger实战:SnackBar消息通知机制与避坑指南

如果你最近在 Flutter 项目里维护消息通知,一定对 ScaffoldMessenger 不陌生。这个组件从 Flutter 2.0 开始就成为 SnackBar 的官方入口,但很多人只是照着文档写ScaffoldMessenger.of(context).showSnackBar(...),真到项目复杂起来——页面嵌…

2026/10/18 2:08:55 阅读更多 →
TensorFlow Lite端侧推理实战:从模型转换到Android/iOS集成与性能调优

TensorFlow Lite端侧推理实战:从模型转换到Android/iOS集成与性能调优

1. 从训练到部署:为什么端侧推理是移动AI的最后一公里做过移动端AI应用的人都有一个共同感受:模型在服务器上跑得好好的,一放到手机上就各种水土不服。训练阶段用的是高端显卡,推理阶段却要面对手机芯片那点可怜的内存和算力。这个…

2026/10/18 2:08:55 阅读更多 →
TensorFlow Lite移动端部署实战:量化、性能调优与热替换

TensorFlow Lite移动端部署实战:量化、性能调优与热替换

1. 移动端推理框架选型的核心逻辑做过移动端AI功能的人都有一个共识:在手机上跑模型,跟在服务器上跑模型完全是两码事。服务器上你可以堆显卡、加内存,实在不行换张更猛的卡就行。但手机端不行,你得在算力、内存、功耗、发热这四个…

2026/10/18 2:07:55 阅读更多 →

日新闻

基于GMM的语音识别系统原理与MATLAB实现详解

基于GMM的语音识别系统原理与MATLAB实现详解

说到基于高斯混合模型(GMM)的语音识别系统,很多人第一反应就是一堆数学公式,觉得门槛很高。但如果你真的在MATLAB里把它落地跑通,会发现核心其实就是三件事:把声音变成特征向量,用GMM给每个类别…

2026/10/18 0:00:55 阅读更多 →
数字图像处理入门:反白、灰度化、调色板修改与导出txt实践

数字图像处理入门:反白、灰度化、调色板修改与导出txt实践

数字图像处理这四个字听起来挺唬人,但落到具体操作上,无非就是让计算机按你的想法“摆弄”像素。我在一个模拟项目X里用了一套特别经典的基础处理流程:对图像做反白、改调色板、彩色转灰度,最后把像素数据导出成txt文件。单看每一…

2026/10/18 0:00:55 阅读更多 →
机器人大脑技术盘点:具身智能的感知、决策与数据闭环

机器人大脑技术盘点:具身智能的感知、决策与数据闭环

如果你的信息流最近也天天刷到“机器人大脑”这个词,你会发现一个很有意思的现象:每个人说的“大脑”根本不是同一个东西。有人指的是大语言模型,有人指的是运动控制系统,还有人指的是能理解物理世界的端到端模型。在2026年这个时…

2026/10/18 0:00:55 阅读更多 →

周新闻

基于GMM的语音识别系统原理与MATLAB实现详解

基于GMM的语音识别系统原理与MATLAB实现详解

说到基于高斯混合模型(GMM)的语音识别系统,很多人第一反应就是一堆数学公式,觉得门槛很高。但如果你真的在MATLAB里把它落地跑通,会发现核心其实就是三件事:把声音变成特征向量,用GMM给每个类别…

2026/10/18 0:00:55 阅读更多 →
数字图像处理入门:反白、灰度化、调色板修改与导出txt实践

数字图像处理入门:反白、灰度化、调色板修改与导出txt实践

数字图像处理这四个字听起来挺唬人,但落到具体操作上,无非就是让计算机按你的想法“摆弄”像素。我在一个模拟项目X里用了一套特别经典的基础处理流程:对图像做反白、改调色板、彩色转灰度,最后把像素数据导出成txt文件。单看每一…

2026/10/18 0:00:55 阅读更多 →
机器人大脑技术盘点:具身智能的感知、决策与数据闭环

机器人大脑技术盘点:具身智能的感知、决策与数据闭环

如果你的信息流最近也天天刷到“机器人大脑”这个词,你会发现一个很有意思的现象:每个人说的“大脑”根本不是同一个东西。有人指的是大语言模型,有人指的是运动控制系统,还有人指的是能理解物理世界的端到端模型。在2026年这个时…

2026/10/18 0:00:55 阅读更多 →

月新闻

我发现了一个新思路:用 Remotion + Claude Code 像写代码一样自动化生成短视频

我发现了一个新思路:用 Remotion + Claude Code 像写代码一样自动化生成短视频

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/18 0:55:02 阅读更多 →
Windows下 Codex 中 Chrome 和 Computer Use 插件不可用问题排查及解决参考方式:TaoToken 统一 Key 配置与验证

Windows下 Codex 中 Chrome 和 Computer Use 插件不可用问题排查及解决参考方式:TaoToken 统一 Key 配置与验证

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/17 17:22:31 阅读更多 →
黑夜航拍船只数据集训练YOLOV5模型全流程解析

黑夜航拍船只数据集训练YOLOV5模型全流程解析

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/16 14:23:36 阅读更多 →