使用tty0tty设置虚拟串行端口(Linux空调制解调器仿真器)


9

我想在Linux中设置虚拟串行端口仿真器。我希望端口是永久的,以便每次重新启动时都可以使用它们。我尝试以此方式使用socat

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

但是在测试程序中使用这些VSP(虚拟串行端口)时,经常会遇到端口繁忙的问题。另外,我发现很难创建永久性/持久性VSP。我现在想出于我的目的尝试tty0tty。但是,几乎没有任何文档及其使用指南。有人可以启发我吗?如果也有socat解决方案,请发表评论。

Answers:


13

安装

  1. 从以下来源之一下载tty0tty软件包:

  2. 提取它

    • tar xf tty0tty-1.2.tgz
  3. 从提供的源代码构建内核模块
    • cd tty0tty-1.2/module
    • make
  4. 将新的内核模块复制到内核模块目录中
    • sudo cp tty0tty.ko /lib/modules/$(uname -r)/kernel/drivers/misc/
  5. 加载模块
    • sudo depmod
    • sudo modprobe tty0tty
    • 您应该在/ dev /(ls /dev/tnt*)中看到新的串行端口
  6. 给新的串行端口适当的权限
    • sudo chmod 666 /dev/tnt*

现在,您可以按/dev/tnt0(1,2,3,4等)访问串行端口。请注意,连续端口已互连。例如,/ dev / tnt0和/ dev / tnt1就像使用直接电缆一样连接。

跨引导持久

编辑文件/ etc / modules(Debian)或/etc/modules.conf

nano /etc/modules

并添加以下行:

tty0tty

警告

请注意,此方法不会使模块在内核更新上保持不变,因此,如果您更新内核,请确保再次构建tty0tty重复此过程。

如果您不移动模块,则每次内核更新systemctl --failed都将返回systemd-modules-load.service终止于“ failed”的服务。还可以journalctl -xe | grep "Failed to find"


1
谢谢队友,一切正常。在其他任何地方都找不到。
yuva

1
:) 很高兴我能帮上忙!
Ruraj 2015年

是否tty0tty还支持Mac OS?
FOAD

您也许可以使用构建它并加载内核模块kextutil,但是我从未尝试过!
Ruraj

华丽的解释。每一点都很好,很整洁。总是很高兴看到这样的回应
master_clown
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.