首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >如何使用USB (而不是RS-232)端口作为文本终端连接?我希望我的要求是正确的?

如何使用USB (而不是RS-232)端口作为文本终端连接?我希望我的要求是正确的?
EN

Unix & Linux用户
提问于 2022-11-23 20:19:19
回答 1查看 173关注 0票数 2

我有一个Linux系统,它有USB接口,没有RS-232端口.我希望能够将USB电缆插入Linux系统,并将USB电缆的另一端插入到我的PC上,而我的PC恰好运行了Windows 11,并且有PuTTY。

我需要创建的电缆我可以做,它将是一个FTDI USB电缆在一端和一个简单的USB连接器在另一端。这里我使用的是USB连接器而不是RS0-232连接器,以及FTDI TX <> RX USB连接器、FTDI RX <> TX USB连接器,当然还有普通的GND连接器。我将必须确保3.3v或5v信号,这取决于什么FTDI芯片可以处理。不管物理布线,真的是一个空调制解调器,这里是问题,真正的问题,软件配置?

如何将Linux系统配置为将getty会话设置为特定的USB端口?让我们假设我可以解决这个问题,那么,为了便于讨论,它是/dev/ttyUSB0 0之类的吗?

Linux系统是基于系统的,所以我理解它,我不能使用UDEV规则/脚本来设置终端会话,因为它将是一个长寿命的子进程或外孙进程。

我知道这个终端会话不会是系统控制台的真正模拟,也就是说,我只需要一个会话,一旦系统运行完毕。

我知道这是一个很长的问题,谢谢你的宽容。这是Linux系统上的软件配置,我真的需要帮助。

EN

回答 1

Unix & Linux用户

回答已采纳

发布于 2022-12-06 04:38:09

据我所知,其意图是用USB端口制作一个串行控制台端口。

首先,要制作这样的电缆,你需要两个转换器。每台计算机的USB端口必须提供USB到UART转换器,转换器需要背靠背连接,从一个到另一个的RX。并将地面连接在一起,但可能最好是有一个电流隔离(一对光电耦合器,每个方向的TX→RX),以消除任何可能的地面回路。最后,您将拥有一个USB到USB零调制解调器电缆,它看起来像一个串行端口,当两端连接到计算机上时,当两端都插入时,这些串行端口似乎与标准的空调制解调器电缆连接。

接下来,您需要在这个USB串口上运行一个systemd getty服务。如果您能够负担将电缆始终连接到Linux计算机的费用,您可以只启用serial-getty@ttyUSB0服务:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
systemctl enable serial-getty@ttyUSB0.service

如果您更愿意在系统启动后被允许插入和拔出它,您需要设置systemd和udev,以便在USB到串行设备插入时一起启动该服务,并在该服务被拔出时终止该服务。

为此,您将使设备依赖于服务。添加udev规则以使用SYSTEMD_WANTS环境变量动态添加依赖项:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
ACTION=="add", SUBSYSTEM=="tty", KERNEL=="ttyUSB*", ENV{SYSTEMD_WANTS}+="serial-getty@%k.service"

该规则可以应用到/etc/udev/rules.d/99-ttyUSB.rules中。%k的意思是“取内核设备名称”,类似于ttyUSB0

使用udev工具为udev规则找出最方便的过滤器;这个过滤器非常广泛,将接管任何看起来像USB串行的设备,并在那里运行getty。即使它真的是一个调制解调器,它显示为2ttyUSB的!例如,查看这里获取详细信息;同时也要注意注意事项

现在,在我的Debian系统上,它登录到/var/log/daemon.log中:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
(plugged)
Dec  6 16:31:39 uc-s4m75657 systemd[1]: Started Serial Getty on ttyUSB0.
Dec  6 16:31:41 uc-s4m75657 ModemManager[632]: <info>  [base-manager] couldn't check support for device '/sys/devices/pci0000:00/0000:00:14.0/usb2/2-7': not supported by any plugin
(unplugged)
Dec  6 16:32:27 uc-s4m75657 systemd[1]: serial-getty@ttyUSB0.service: Succeeded.
Dec  6 16:32:27 uc-s4m75657 systemd[1]: Stopped Serial Getty on ttyUSB0.

当然,与/bin/login相关联的ttyUSB0进程会出现并消失。

另见这个答案

如果需要限制允许同步的可能的串行速度集,则可以使用覆盖文件进行此操作。运行systemctl edit serial-getty@ttyUSB0.service并添加:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
[Service]
ExecStart=-/sbin/agetty 115200 %I $TERM

或者你想要它使用的任何速度,确保你的USB到串行适配器支持它.

票数 0
EN
页面原文内容由Unix & Linux提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://unix.stackexchange.com/questions/726107

复制
相关文章
为什么我应该使用指针而不是对象本身
对于现代 C++ (尤其是 C++ 11 之后),大量使用 new 动态分配是不明智的选择。
ClearSeve
2022/02/10
1.4K0
我为什么推荐大家使用 Nginx 而不是 Apache?
最后Nginx和Apache的差异总结成一句话就是:“Nginx适合处理静态请求和反向代理,Apache适合处理动态请求”。但这个差异化只有在请求量达到一定的阈值时表现差异才能表现出来,对于 WordPress 、 Typecho 等等这里动态站点来说某一天流量达到这个阈值的时候,还可以部署LNMPA这样的生产环境来应对和解决。所以流量阈值需求不到的时候,选择Nginx是性价比最好的选择了。
明月登楼的博客
2019/05/15
2.5K0
我为什么推荐大家使用 Nginx 而不是 Apache?
为什么我在 Linux 上使用 exa 而不是 ls?
我们生活在一个繁忙的世界里,当我们需要查找文件和数据时,使用 ls 命令可以节省时间和精力。但如果不经过大量调整,默认的 ls 输出并不十分舒心。当有一个 exa 替代方案时,为什么要花时间眯着眼睛看黑白文字呢?
用户1880875
2021/09/06
2K0
小白建站我为什么更推荐使用WordPress而不是typecho?
很多人在选择博客站时总是纠结使用WordPress还是typecho,亦或是像emlog,hexo,zblog等等,大多数大佬都是推荐typecho,一致意见是wp博客臃肿,那么,wp占地大吗?对的。但我还是推荐使用wp建站,下面说说我的看法。
深白鸭
2023/03/12
1.4K0
小白建站我为什么更推荐使用WordPress而不是typecho?
我是如何使用ChatGPT和CoPilot作为编码助手的
原文链接:https://notes.drdroid.io/how-i-use-ai-for-code-assistance
明明如月学长
2023/07/31
5740
Swagger问题:我希望我的Swagger在生产的时候使用,在发布的时候不使用
简介:本文讲解如何解决,我希望我的Swagger在生产的时候使用,在发布的时候不使用。
GeekLiHua
2025/01/21
550
Swagger问题:我希望我的Swagger在生产的时候使用,在发布的时候不使用
谁动了我的USB-Usbrip使用教程
Usbrip(源自“USB Ripper”,而不是“USB RIP”惊人)是一个开源取证工具,带有CLI界面,可让您跟踪USB设备工件(即USB事件历史记录,“已连接”和“已断开连接”事件) Linux机器。
逍遥子大表哥
2021/12/17
5640
谁动了我的USB-Usbrip使用教程
当我开始使用React 时,我希望我知道这些知识
自2013年5月29日首次发布以来,React.js已经占领了互联网。我和许多其他开发人员将他们的成功归功于这个了不起的框架,这已经不是什么秘密了。
前端小智@大迁世界
2019/06/15
9370
Terminal - 我的终端生态Log
自从使用了oh-my-zsh,虽然只有短短几天,但是足以让我感到zsh的智能强大! zsh基本完全兼容bash Tab补全比bash更加智能化 路径切换可以不用输入cd,快捷但不推荐 history可以横跨不同终端 ... zsh与bash彼此切换 切换到zsh chsh -s /bin/zsh # or zsh 切换到bash chsh -s /bin/bash # or zsh 注意:长命令切换后生效需要重启终端! 继续使用ing~~~
AlicFeng
2018/06/08
3550
我不是算命先生,却对占卜有了疑惑——如何论证“占卜前提”的正确与否
事出有因,我对《周易》感兴趣了很多年。只是觉得特别有趣,断断续续学习了一些皮毛。这几天又偶然接触到了《梅花易数》,觉得很是精彩,将五行八卦天干地支都串联了起来。这套东西价值也许并不在于它的“初衷”——占卜,但在增加生命厚度、拓宽视野方法绝对值得一看。
一石匠人
2018/09/12
1.3K1
我不是算命先生,却对占卜有了疑惑——如何论证“占卜前提”的正确与否
我不是大佬!
这个典故的意思大概就是说,如果有一个人说发生了某件事,你可能不会信,但是如果很多人都在谈论这件事的时候,那怕这件事情真的没有发生,很大概率你也会相信。
纯洁的微笑
2019/05/06
4970
我不是大佬!
躺平不是我想要的生活!
这不是一个对程序员友好的话题,当局者迷,躺平也不是这个社会青年人该有的态度,一个工作10多年的人居然说自己不年轻,多少显得滑稽,也说明IT这个行业对老人是多么的不友好!思维的懒惰,和身体的勤奋,往往让我们继续选择原地踏步,问题依旧在,得不到改变,想的也不是特别深入,先抛出来,记下来,或许下次谈起,也就能找到出路了!
呱牛笔记
2023/05/02
2580
躺平不是我想要的生活!
CNN:我不是你想的那样
每当我们训练完一个CNN模型进行推理时候,一旦出现人类无法解释的现象就立刻指责CNN垃圾,说这都学不会?其实你可能冤枉它了,而本文试图为它进行辩护。
lujohn3li
2020/11/30
6900
CNN:我不是你想的那样
Plone内容类型如何作为文件夹而不是事件工作
Plone 是一个强大的内容管理系统(CMS),基于 Python 和 Zope 应用服务器。在 Plone 中,内容类型(或称为内容对象)如“文件夹”和“事件”是其数据模型的核心组成部分。如果你希望一个内容类型像文件夹那样行为(即可以包含其他对象),而不是像事件那样(通常用于表示日程安排的单个项目),你可以通过几种方式来实现这一点。
华科云商小徐
2025/01/07
340
有关bash,我希望我能知晓的十件事
简介 我之前的一篇文章比我预想的更受欢迎,因此我想再写一篇文章来介绍一些不太知名的bash功能 正如之前所言,由于我觉得bash是一种要经常使用(且需理解)的技术,所以我在研究bash时写了一本书。虽然许多人并不熟悉bash,但我觉得他们也认为非常重要便足够令人欣喜。 1)^x^y^ 我总在使用的一个小技巧。 从来没有输入过类似的命令? $ grp somestring somefile -bash: grp: command not found 哎,这个命令敲错了,所以你要敲“↑”,然后敲”←“直到”p
小小科
2018/06/20
6480
我理解的 TCP 连接
TCP 是面向连接的协议。运输连接是用来传输 TCP 报文的。TCP 运输连接的建立和释放是每一次面向连接通信中必不可少的过程。因此,运输连接有三个阶段,即:连接建立,数据传输和连接释放。
haifeiWu
2020/02/10
1.2K0
为啥我要选用Element作为wljslmz.cn子系统的UI框架?
那么我之前介绍过后面要开发一个子系统用来提供命令查询,那么经过一周的考虑,前端的ui框架选好了。
网络技术联盟站
2023/03/13
3000
为啥我要选用Element作为wljslmz.cn子系统的UI框架?
有关bash,我希望我能知晓的十件事
我之前的一篇文章比我预想的更受欢迎,因此我想再写一篇文章来介绍一些不太知名的bush功能。
马哥linux运维
2019/02/20
3300
我希望按照我的思路尽可能将canvas基础讲明白
写在前面 canvas很多人写过,我之前的博客里面也写过关于canvas的教程,但是后面我觉得其实不太好,因为很多东西都是很模糊的,没有非常直观清晰的将canvas讲解明白,究其原因,还是这个属性使用的不够多,导致很多属性不够熟练,但是我希望这篇文章可以将这个属性彻底的讲明白,毕竟只是一个标签而已,怎么讲都不会太复杂,他之所以不太好学原因就在于他自带的方法太多,加上很多的效果都是需要方法之间的相互配合使用,所以难度和复杂度就直接升高了很多,它不像html的其他标签一样,比如p、span等都只是自带了一些样
何处锦绣不灰堆
2022/05/31
3550
我希望按照我的思路尽可能将canvas基础讲明白
我以为,前端的精髓是学会分析与思考,而不是js语句
今天我在跟同学们讲课,讲到做轮播图的时候,脑子里突然蹦出一句话,“学js学前端,是学习用程序、用机器的思维方式来解决现实当中的问题,而不是学这几十上百条的js语句”。 当时正在上课途中,不方便发散思维来多说。于是当时这个话题就岔过去了。现在放空脑子想想,前端开发是做什么?它并不是一个做网页的,虽然这个职位看起来和做起来,都是一个做网页的。 我口语化的描述一下,这个职位它实际上是把人们在现实生活当中的需求,放到网上来给它实现了,是做线下需求网络化的。这是我的个人主观的想法。 以前是线下买东西,线下排队看病挂号
web前端教室
2018/02/07
1.1K0
我以为,前端的精髓是学会分析与思考,而不是js语句

相似问题

RJ-45 <-> RS-232,我能代替RS-232,并滥用我的以太网端口作为COM端口吗?

20

如何使用这个.ttf文件作为我的终端字体?

10

如何使用USB设备而不是硬盘

10

如何使用Libudev查找哪些端口连接到我的Usb

10

使用RS-232输出作为击键

10
添加站长 进交流群

领取专属 10元无门槛券

AI混元助手 在线答疑

扫码加入开发者社群
关注 腾讯云开发者公众号

洞察 腾讯核心技术

剖析业界实践案例

扫码关注腾讯云开发者公众号
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
查看详情【社区公告】 技术创作特训营有奖征文