linux下acm串口读写,使用socat将Linux终端从串口转发到TCP

2023-10-27

我正在开发嵌入式ARM平台Slackware.我正在使用G24

Java调制解调器,它配置为在端口/ dev / ttyS1和/ dev / ttyACM0之间转发数据,因此任何进入任何这些端口的东西都可以在另一个端口上看到.我想在其中一个端口/ dev / ttyS1上设置终端,并将另一个端口/ dev / ACM0转发到TCP端口,因此可以通过LAN从其他机器访问它.

首先,我配置了/ etc / inittab:

s2:12345:respawn:/sbin/agetty -L ttyS1 115200 vt100

然后我尝试使用socat和以下命令:

socat -d -d -d TCP-l:2020,reuseaddr,fork /dev/ttyACM0,raw,nonblock,waitlock=\”/var/run/ttyACM0.lock\”,b115200,echo=1,icanon=1,crnl

然后我试图从其他机器连接到telnet 192.168.1.222 2020,结果不太好,我从客户端看到终端要求登录,但是有一个我没有输入的即时答案在:^ M ^ M ^ M …等,终端正在回答登录不正确,然后一次又一次地回答相同的事情.

我知道^ M意味着回车标志,但我不太确定如何解决这个问题.

我尝试了不同的socat配置,但没有一个正常工作.

403_18@

经过几个小时的深入研究和测试后,我找到了一个解决方案.

首先,我必须通过添加行来启用终端:

就是ttyS1

在文件/ etc / securetty中.

如果没有这个,你无法登录/ dev / ttyS1的终端.

其次,我测试了许多不同的socat配置,以下命令有效:

/usr/local / bin / socat tcp -l:2020,fork,crlf文件:/ dev / ttyACM0,echo = 0,crnl,icanon = 1

但是,这种解决方案并不完美.每个命令提示符后终端都会断行,因此在下一行输入用户输入.此外,在执行每个命令后出现一个空的命令提示符(就像我在我真正输入的命令后立即输入空命令).

我想我应该用stty正确配置/ dev / ttyACM0,但我还在研究这个话题.

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

linux下acm串口读写,使用socat将Linux终端从串口转发到TCP 的相关文章

  • 基于zinx的go tcp通信案例

    基于zinx的go tcp通信示例 一 zinx简介 https gitee com Aceld zinx Zinx是一个基于Golang的轻量级tcp服务框架 根据官方的定位 zinx是在游戏领域或者其他长链接的领域的轻量级企业框架 其使
  • Android RecyclerView对应的适配器中方法的执行顺序和具体作用详解

    前些天发现了一个蛮有意思的人工智能学习网站 8个字形容一下 通俗易懂 风趣幽默 感觉非常有意思 忍不住分享一下给大家 点击跳转到教程 1 代码的执行顺序为 首次进入会先调用getItemCount 返回条目的个数 之后会分别调用 getIt
  • 十大经典排序算法(动态演示+代码)-桶排序

    桶排序 桶排序 Bucket sort 或所谓的箱排序 是一个排序算法 工作的原理是将数组分到有限数量的桶里 每个桶再个别排序 有可能再使用别的排序算法或是以递归方式继续使用桶排序进行排序 最后依次把各个桶中的记录列出来记得到有序序列 桶排
  • Qt中解除按键在聚焦时键盘空格键可以控制

    Qt中解除按键在聚焦时键盘空格键可以控制 只允许鼠标左键可以点击按键 首先需要知道原因 为什么键盘上的空格键也可以点击按键 根据Qt官网说明 A push button emits the signal clicked when it is
  • vue 前端导出excel xlsx插件 修改表格行高列宽度

    cnpm install xlsx save import XLSX from xlsx 列表页引入 表格导出 handleExport if this tableData total 0 this message error 暂无数据 t
  • SpringBoot 对接微信公众号模板消息通知

    效果图见测试结果 有问题评论 模板消息 开通模板消息功能 登录微信公众平台开通模板消息功能 未开通时 添加模板消息 审核通过后 登录微信公众平台 点击 广告与服务 gt 模板消息 公众号如果未设置服务类目 则需要先设置服务类目 然后在模板库
  • html通过id设置css样式,使用ID值如何应用CSS样式?

    假设你一个ID为 mytext 的HTML段落标记 如下面的代码片段所示 This is HTML interview questions 你可以使用有着 id 名称的 选择器创建一个样式 并应用CSS值到段落标记 为了应用样式到 myte
  • [spring] 注解@Autowired是如何实现的

    Table of Contents 前言 Autowired注解用法 Autowired注解的作用到底是什么 Autowired注解是如何实现的 例子注解 Override 自己实现一个注解 Autowired注解实现逻辑分析 问题 注解的
  • LaTeX学习笔记(数学公式编辑:公式与矩阵中符号的设置)

    1 使用 left与 right指令对公式中括号的长度进行调整 方法 将 left与 right命令分别放到公式左右括号前 这是调整括号长度前 这是调成括号长度后 2 使用 left与 right指令对公式中竖线的长度进行调整 方法 在数学
  • python怎么做多个矩阵,在python中添加两个矩阵

    I m trying to write a function that adds two matrices to pass the following doctests gt gt gt a 1 2 3 4 gt gt gt b 2 2 2
  • Java GUI,mybatis实现资产管理系统

    Java GUI 资产管理系统 前言 为了做java课设 学了一手Java GUI 感觉蛮有意思的 写写文章 做个视频记录一下 欢迎大家友善指出我的不足 资产管理系统录制视频 从头敲到尾 模块划分 资产信息管理 资产信息查询 各种条件查询
  • 实现一个完整的前后端交互

    题目一 计算器 1 构建项目 前端代码
  • C/C++中float和double的存储结构(转)

    在C C 中float是32位的 double是64位的 两者在内存中的存储方式和能够表示的精度均不同 目前C C 编译器标准都遵照IEEE制定的浮点数表示法来进行float double运算 无论是float还是double 在内存中的存
  • 软件测试需要学什么?软件测试技能图谱

    很多新手 不知道软件测试学习该如何开始 软件测试需要掌握哪些知识 下面是根据本人的理解 粗略整理的一个学习大纲 基本上涵盖了软件测试工程师需要掌握的全部技能 希望对刚入行或者准备学习测试的朋友提供一点指引 1 测试基础理论 不管有没有计算机
  • docker 搭建 Jenkins 容器 ,拉取git代码

    Docker 搭建 Jenkins 容器 拉取git代码 一 安装jenkins 前提条件 宿主机安装docker 1 拉取镜像 docker pull jenkins jenkins 2 查看镜像 docker images 列表中有je
  • C++ 引用作为函数返回值

    1 以引用返回函数值 定义函数时需要在函数名前加 2 用引用返回一个函数值的最大好处是 在内存中不产生被返回值的副本 引用作为返回值 必须遵守以下规则 1 不能返回局部变量的引用 主要原因是局部变量会在函数返回后被销毁 因此被返回的引用就成
  • unity音效添加

    音频资源AudioClip 播放的音频通过摄像头上的Audio Listener监听 Audio Listener有且只有一个 否则会报警告 创建一个空对象 重命名为Music Player 音频源 为其添加上Audio Souce组件 将
  • Mysql - 直接查询存储的Json字符串中的数据

    我们平时使用mysql 出于项目需求 可能需要直接将Java对象或者一个大json 直接存到表中的某个字段中 使用的时候再查出来 反序列化到对象或者一个Map中 方便我们操作 大多时候 我们可能并不需要所有的数据 只想使用这个对象或者jso
  • 详解synchronized与Lock的区别与使用

    引言 昨天在学习别人分享的面试经验时 看到Lock的使用 想起自己在上次面试也遇到了synchronized与Lock的区别与使用 于是 我整理了两者的区别和使用情况 同时 对synchronized的使用过程一些常见问题的总结 最后是参照

随机推荐

  • 关于easyExcel实体字段对应日期类型格式化问题

    可以写一个实体转换器来实现easyExcl中的Converter接口 可参考easyExcel官方文档中的 Alibaba Easy Excel 简单 省内存的Java解析Excel工具 读Excel
  • MATLAB实现传递函数

    1 简单的传递函数模型 num 1 10 den 1 5 4 3 2 G tf num den 2 零极点模型 KGain K 系统增益K Z 1 2 3 零点 P 4 5 6 极点 G zpk Z P KGain 3 反馈系统 G1 tf
  • 阿里马涛:重新定义云时代的开源操作系统

    作者 Just 出品 CSDN ID CSDNnews 随着云计算的发展 以及Linux平台的不断发展和生态系统的不断完善 越来越多的企业 云服务提供商都将Linux作为其数据中心的首选操作系统 不过 作为云基础设施的底座 针对云上产品和环
  • HyperLedger Fabric链码开发及测试

    https blog csdn net TripleS X article details 80550401 https blog csdn net weixin 44676392 article details 87938451 http
  • C# 实现多种语言切换,通过VS实现

    步骤 1 在要更换语言的界面 如Form1界面 选择属性 Language 选择要使用的语言 如下图 2 添加完语言之后VS会自动生成对应语言的 resx文件 通过该文件可以编辑语言 由于VS已经给我们添加了该界面的所有字段和变量 所以我们
  • 海思his35xx安防芯片音视频媒控驱动基础篇MIPI RX模块(一)

    先给自己打个广告 本人的微信公众号正式上线了 搜索 张笑生的地盘 主要关注嵌入式软件开发 股票基金定投 足球等等 希望大家多多关注 有问题可以直接留言给我 一定尽心尽力回答大家的问题 二维码如下 一 背景介绍 海思芯片的应用方向大致分为如下
  • python安装库出现retrying-Python之retrying

    retrying是一个很好用的关于重试的Python包 可以用来自动重试一些可能会运行失败的程序段 为什么选择retrying 我们在写一些程序的时候 会去调用一些外部资源 组件 这些外部程序对我们来说是不可控的 所以它们不可用 运行失败都
  • SqlServer数据库删除数据

    数据库删除数据的三种代码方式 1 删除表结构及所有数据 drop table table name 2 恢复表格出厂设置 id清空 truncate table table name 3 删除表数据 delete from table na
  • 期货怎么满仓(期货为什么不能满仓操作)

    期货满仓怎么bao cang q 您是想问期货满仓爆仓怎么处理吗 满仓交易的风险就是会强制平仓 也就是所谓的爆仓 爆仓是指 1 投资者帐户权益为负数 表明投资者不仅输光了全部保证金而且还倒欠期货经纪公司债务 2 发生爆仓时 投资者必须及时将
  • 红帽认证主要考哪些内容呢

    红帽认证考试主要考以下内容 RH124 红帽系统管理I 主要涉及访问命令行 从命令行访问文件 获取RHCEL7帮助信息 创建及查看编辑文件 管理用户和用户组 管理文件和目录权限 监视和管理Linux进程 控制服务和后台进程 管理OpenSS
  • Android自定义自动换行LinearLayout探索与实现

    Android自定义自动换行LinearLayout探索与实现 在Android开发中 我们经常需求实现一些特定的布局效果以满足用户的需求 其中之一就是自动换行布局 即当容器内的子视图数量超过一行时 自动将多余的子视图放到下一行进行显示 本
  • go语言试用标准c 库,Go语言开发(十三)、Go语言常用标准库三

    Go语言开发 十三 Go语言常用标准库三 一 sync 1 sync简介 sync提供基本的同步原语 如sync Mutex sync RWMutex sync Once sync Cond sync Waitgroup 除了Once和Wa
  • Vue Collapse 中嵌套 Collapse 折叠板在tab切换后打不开了

    name也要改成indx 监听tab改变 清空vModel 在给vModel赋值 这样就解决了
  • Hive元数据上亿级别存储方案的实践

    问题导读1 什么是元数据 Federation 方案 2 怎样引入 Federation 方案 3 怎样改造现有服务 背景Apache Hive 是基于 Apache Hadoop 之上构建的数据仓库 提供了简单易用的类 SQL 查询语言
  • 备份Vss工程&建立Vss目录安全体系

    一 使用备份文件 ssa进行恢复时 1 若原来作的是archive all the date的备份 并且没有将原project删除 则 永久删除 原来的project再作恢复 2 若原来作的 archive this version and
  • springboot连接redis并动态切换database

    springboot连接redis并动态切换database 众所周知 redis多有个db 在jedis中可以使用select方法去动态的选择redis的database 但在springboot提供的StringRedisTemplat
  • KVM虚拟机热扩容

    创建一个虚拟机用于练习在线扩容 virt install name centos8 3 memory 4096 currentMemory 1024 vcpus 2 maxvcpus 8 disk var lib libvirt image
  • 解决echarts饼图显示百分比,和显示内容字体及大小,如何给eCharts饼图区域指定颜色

    解决echarts饼图显示百分比 和显示内容字体及大小 基于准备好的dom 初始化echarts实例 var pieEchart echarts init document getElementById pieEchart 指定图表的配置项
  • 模糊查询java.sql.SQLException: ORA-00933: SQL 命令未正确结束 踩坑经历

    ORA 00933 1 仔细检查sql语句是否缺少逗号 2 关键字是否缺少空格 3 SQL语句中缺少关键字或者多了某个关键字 and 4 在做模糊查询时 在仔细反复检查SQL语句的前提下 未发现错误 在数据库中能正确运行 控制台就报java
  • linux下acm串口读写,使用socat将Linux终端从串口转发到TCP

    我正在开发嵌入式ARM平台Slackware 我正在使用G24 Java调制解调器 它配置为在端口 dev ttyS1和 dev ttyACM0之间转发数据 因此任何进入任何这些端口的东西都可以在另一个端口上看到 我想在其中一个端口 dev