在Linux系统中创建虚拟串口

在Linux系统中创建虚拟串口

文章目录

  • 在Linux系统中创建虚拟串口
    • 1、虚拟串口介绍
    • 2、使用 socat创建虚拟串行端口
      • 2.1 安装socat
      • 2.2 创建简单的虚拟串口
      • 2.3 创建指定波特率的串行端口

有多种方法可以在 Linux 中创建虚拟串口来测试和调试串行通信协议。 在本文中,我们将详细介绍如何在Linux中创建虚拟串行端口。

1、虚拟串口介绍

虚拟串口是物理串口的逻辑表示。 这些端口不与串行端口连接。 虚拟串行端口允许我们模拟物理串行端口,从而消除电缆和物理通信接口的要求。

此外,虚拟端口允许软件包使用空调制解调器仿真器与内部存储器进行通信。 空调制解调器模拟器是 Linux 的虚拟驱动程序,可实现虚拟串行端口通信。

2、使用 socat创建虚拟串行端口

创建虚拟串行端口的第一种方法是使用 socat 实用程序。 该实用程序使用标准输入和输出将端口流量传输到可执行文件。 socat 的语法如下:

socat [OPTIONS]

这两个ADDRESS可以是:

  • stdio:标准输入/输出
  • udp:host:port:与主机和端口的 UDP 连接
  • tcp:host:port:与主机和端口的 TCP 连接
  • file:<文件名>:文件或 FIFO(命名管道)
  • pty:伪终端
  • pty,link=<文件名>:带有符号链接的伪终端
  • pty,rawer,link=<文件名>:具有原始数据传输和符号链接的伪终端

2.1 安装socat

尽管 socat 实用程序通常默认可用,但我们可以将其安装在我们的计算机上。 要安装它,我们将使用 apt-get 包或 yum 包:

#Debian-based Linux
sudo apt-get install -y socat
# RHEL-based Linux
sudo yum install -y socat

这将在 Linux 计算机上安装 socat。

2.2 创建简单的虚拟串口

例如,要创建两个打开调试模式的伪终端,我们需要键入 socat 并使用 -d 选项和 pty,rawer 代替地址:

socat -d -d pty,rawer,echo=0 pty,rawer,echo=0

输出如下:

2023/11/15 17:34:44 socat[78860] N PTY is /dev/pts/3
2023/11/15 17:34:44 socat[78860] N PTY is /dev/pts/4
2023/11/15 17:34:44 socat[78860] N starting data transfer loop with FDs [5,5] and [7,7]

socat 命令后面的 -d -d 选项打印致命、错误、警告和通知消息。 此外, pty,rawer,echo=0 参数在 /dev/pts 下创建两个伪终端。 这些端子充当串行连接的端点。 要连接这两者,我们可以使用任何串行通信工具,例如 minicom。 例如,要以 9600 的波特率连接 /dev/pts/3,我们将运行:

minicom -D /dev/pts/3 -b 9600

这将连接 /dev/pts/3,波特率为 9600。

2.3 创建指定波特率的串行端口

或者,我们可以通过将 baud 参数添加到 socat 命令来创建具有自定义波特率的虚拟端口:

socat -d -d pty,rawer,echo=0,link=/tmp/ttyV0, baud=115200 pty,rawer,echo=0,link=/tmp/ttyV1,baud=115200

这将创建一对具有自定义名称 /tmp/ttyV0 和 /tmp/ttyV1 的虚拟速率。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/152253.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

基于饥饿游戏算法优化概率神经网络PNN的分类预测 - 附代码

基于饥饿游戏算法优化概率神经网络PNN的分类预测 - 附代码 文章目录 基于饥饿游戏算法优化概率神经网络PNN的分类预测 - 附代码1.PNN网络概述2.变压器故障诊街系统相关背景2.1 模型建立 3.基于饥饿游戏优化的PNN网络5.测试结果6.参考文献7.Matlab代码 摘要&#xff1a;针对PNN神…

代码随想录二刷 | 链表 | 基础知识

代码随想录二刷 &#xff5c; 链表&#xff5c; 基础知识 链表链表的类型单链表双链表循环链表 链表的存储方式链表的定义链表的操作删除节点增加节点 性能分析 链表 链表是一种通过指针串联在一起的线性结构&#xff0c;每一个节点由两部分组成&#xff0c;一个是数据域一个是…

<MySQL> 如何合理的设计数据库中的表?数据表设计的三种关系

目录 一、表的设计 二、一对一关系 三、一对多关系 四、多对多关系 一、表的设计 数据库设计就是根据需要创建出符合需求的表。 首先根据需求找到体系中的关键实体对象&#xff0c;通常每个实体对象都会有一个表&#xff0c;表中包含了这个实体的相关属性。 再理清楚实体对…

数据结构【DS】树与二叉树的应用

哈夫曼树 树的带权路径长度最小的二叉树WPL 路径长度【边数】 * 结点权值n个叶结点的哈夫曼树共有 2n-1 个结点 哈夫曼树的任意非叶结点的左右子树交换后仍是哈夫曼树对同一组权值&#xff0c;可能存在不同构的多棵哈夫曼树&#xff0c;但树的带权路径长度最小且唯一哈夫曼树…

Java贪吃蛇小游戏

Java贪吃蛇小游戏 import javax.swing.*; import java.awt.*; import java.awt.event.ActionEvent; import java.awt.event.ActionListener; import java.awt.event.KeyEvent; import java.awt.event.KeyListener; import java.util.LinkedList; import java.util.Random;publi…

C语言——操作符详解

前言&#xff1a;这篇文章主要讲解一下C语言中常见的操作符的使用&#xff0c;做一下整理&#xff0c;便于日后回顾&#xff0c;同时也希望能帮助到大家。 &#x1f3ac;个人简介&#xff1a;努力学习ing &#x1f4dd;CSDN主页 愚润求学 &#x1f304;每日鸡汤&#xff1a;念…

大数据的技术运用:探索未来的无限可能性

随着科技的不断进步和社会信息的快速增长&#xff0c;大数据已成为一个热门话题。本文将探讨大数据技术在多个领域的应用&#xff0c;以及它对未来的影响和无限可能性。 导言 在过去的几十年里&#xff0c;大数据技术取得了惊人的发展&#xff0c;它不仅改变了企业的经营方式&a…

大模型LLM 在线量化;GPTQ\AWQ量化

1、大模型LLM 在线量化 参考:https://www.cnblogs.com/bruceleely/p/17348782.html ##8bit model = AutoModel.from_pretrained("THUDM/chatglm-6b", trust_remote_code=True).quantize(8).half(

开源与闭源:数字化时代的创新与合作之争

引言&#xff1a; 在数字化时代&#xff0c;开源与闭源软件的辩论一直是技术界的热门话题。特斯拉CEO马斯克最近公开表示&#xff0c;OpenAI不应该闭源&#xff0c;而自家首款聊天机器人将开源。这一表态引发了广泛的讨论和思考。本文将从不同角度探讨开源与闭源软件的优势与劣…

odoo17 web.assets_web.min.js 赏析

odoo17 web.assets_web.min.js 赏析 前文说到&#xff0c;odoo17的前端js做了大量裁剪优化&#xff0c;最终打包成了一个文件assets.web.js 稍微看一下这个文件的结构 web.assets_web.min.js 行 1: /* /web/static/src/module_loader.js */ 行 173: /* /web/static/…

数据中心标签的重要性

布线标签的实施是为了为用户今后的维护和管理带来最大的 便利&#xff0c;提高其管理水平和工作效率&#xff0c;减少网络配置时间&#xff0c;标签标识系统包括三个方面:标识分类及定义,标签和建立文档。 标签、标识的分类有哪些? 数据中心内的每一电缆、光缆、配线设备、端…

解决网络编程中的EOF违反协议问题:requests库与SSL错误案例分析

1. 问题背景 近期&#xff0c;一个用户在使用requests库进行网络编程时遭遇到了一个不寻常的问题&#xff0c;涉及SSL错误&#xff0c;并提示错误消息为SSLError(SSLEOFError(8, uEOF occurred in violation of protocol (_ssl.c:661)),))。该用户表示已经采取了多种方法来解决…

109.firefly-extboot的生成脚本

内核版本&#xff1a; 4.4.194 在firefly的sdk 2.5.1c及以后的版本都是extboot.img&#xff08;对应表中的extboot&#xff09; 但是之前的并不是&#xff0c;而且一个boot.img&#xff0c;&#xff08;对应表中rkboot&#xff09; rkboot的生成方法可以参考解决linux5.15编…

【数据机构】最小生成树(prim算法)

一.引例 在n个城市之间建设通信网络&#xff0c;至少需要架设多少条通信线路&#xff1f;如果每两个城市之间架设通信线路的造价是不一样的&#xff0c;那么如何设计才能使得总造价最小&#xff1f; 二.生成树与生成森林 生成树&#xff1a;n个顶点的连通图G的生成树是包含G中…

解决 vite 4 开发环境和生产环境打包后空白、配置axios跨域、nginx代理本地后端接口问题

1、解决打包本地无法访问空白 首先是pnpm build 打包后直接在dist访问&#xff0c;是访问不了的&#xff0c;需要开启服务 终端输入 npm install -g serve 然后再输入 serve -s dist 就可以访问了 但要保证 路由模式是&#xff1a;createWebHashHistory 和vite.conffig.j…

【MySQL】MVCC(多版本并发控制)详解

MVCC MVCC概述 MVCC&#xff0c;全称 Multi-Version Concurrency Control &#xff0c;即多版本并发控制。MVCC 是一种并发控制的方法&#xff0c;一般在数据库管理系统中&#xff0c;实现对数据库的并发访问&#xff0c;在编程语言中实现事务内存。 MVCC就是在ReadCommitte…

docker 容器

目录 简介 什么是docker 容器和镜像&#xff08;contalners&#xff09; 容器和虚拟机 了解docker三个重要概念 &#xff08;1&#xff09;image镜像 &#xff08;2&#xff09;container容器 &#xff08;3&#xff09;repostory仓库 docker的简单使用 安装docker …

车载通信架构 —— 新车载总线类型下(以太网)的通信架构

我是穿拖鞋的汉子&#xff0c;魔都中坚持长期主义的汽车电子工程师。 老规矩&#xff0c;分享一段喜欢的文字&#xff0c;避免自己成为高知识低文化的工程师&#xff1a; 屏蔽力是信息过载时代一个人的特殊竞争力&#xff0c;任何消耗你的人和事&#xff0c;多看一眼都是你的不…

HTTP四种请求方式,状态码,请求和响应报文

1.get请求 一般用于获取数据请求参数在URL后面请求参数的大小有限制 2.post请求 一般用于修改数据提交的数据在请求体中提交数据的大小没有限制 3.put请求 一般用于添加数据 4.delete请求 一般用于删除数据 5.一次完整的http请求过程 域名解析&#xff1a;使用DNS协议…

如何进行手动脱壳

脱壳的目的就是找到被隐藏起来的OEP&#xff08;入口点&#xff09; 这里我一共总结了三种方法&#xff0c;都是些自己的理解希望对你们有用 单步跟踪法 一个程序加了壳后&#xff0c;我们需要找到真正的OEP入口点&#xff0c;先运行&#xff0c;找到假的OEP入口点后&#x…