Linux 中的 ttyS0、ttyUSB0 和 ttyAMA0 有什么区别?

Linux 中的 ttyS0、ttyUSB0 和 ttyAMA0 有什么区别?

我想知道Linux 上ttyS0,ttyUSB0和之间的区别ttyAMA0

答案1

终端S0

当您使用以下命令连接到目标时,您在主机上会得到什么:

在此输入图像描述

来源

大多数笔记本电脑或小型开发板上不存在此端口,但许多台式机上仍然存在该端口,并且对于操作系统开发人员来说非常方便,如下所述:https://askubuntu.com/questions/104771/where-are-kernel-panic-logs/932380#932380

您也可以通过 获得它qemu -device isa-serial

例如,可以使用其中一根电缆连接两个桌面,并在它们之间直接通信,以从您自己的远程桌面上获取 shell。在 Linux 计算机 1 上,您将运行:

screen /dev/ttyS0 115200

然后计算机2会回复登录提示,然后您可以从计算机1登录到计算机2。

所以这有点像 SSH,可以看作是一种早期的网络形式。我认为这些电缆不能太长,否则信号会丢失,而且如果没有 TCP/IP 寻址/数据包机制,您就无法做到那么多。

ttyUSB0

使用以下内容时,您在主机上会得到什么:

当我将 Raspberry Pi 的 GPIO 连接到我的笔记本电脑时,我也会得到它在没有屏幕的 Raspberry Pi 上获取 shell

在此输入图像描述

还有上述的另一个集成度更高的 RPI 连接器版本:

来源

具体的 RPI 示例位于:https://stackoverflow.com/questions/22054578/how-to-run-a-program-without-an-operating-system/32483545#32483545

ttyACM0

这是将计算机连接到以下任一设备时获得的 TTY 界面:

通过 USB 电缆。他们刚刚在同一个USB上直接实现了一个TTY,可以给设备供电和编程,非常方便!

在此输入图像描述

蒂亚玛0

还没有在真正的板上使用过这个。

看来我可以使用该接口将带有串行端口的桌面连接到我的 RPI:https://raspberrypi.stackexchange.com/questions/69697/what-is-dev-ttyama0

我已经将它与 QEMU 一起使用:https://github.com/buildroot/buildroot/tree/27d7ef126bc7f4eb1a757128466befa11245bbfd/board/qemu/arm-versatile

AMA 似乎是以下形式的缩写工商管理硕士https://www.raspberrypi.org/forums/viewtopic.php?t=8075但他们为什么要缩短 4 个字符的缩写呢?!

唯一有趣的 Linux 内核点击如下:https://github.com/torvalds/linux/blob/v4.16/drivers/tty/serial/amba-pl011.c#L2488所以它似乎与 PL011 严格相关:http://infocenter.arm.com/help/index.jsp?topic=/com.arm.doc.ddi0183g/index.html这是一个由 ARM 授权的 UART 控制器,我认为这是主要的实现。

ttySAC0

卡米尔报道那他的三星Artik 710,所以又要收藏一张。

答案2

  • ttyS0是 x86 和 x86_64 架构上第一个 UART 串​​行端口的设备。如果您有带有串行端口的 PC 主板,您可以使用它ttySn来连接调制解调器或串行控制台。
  • ttyUSB0是第一个USB串行转换器的设备。如果你有一个USB串行电缆您将使用ttyUSBn连接到路由器的串行端口。
  • ttyAMA0是ARM架构上第一个串口的设备。如果您有一个基于 ARM 的电视盒,带有串行控制台并运行 Android 或 OpenELEC,您将使用 attyAMAn将控制台连接到它。

相关内容