我想知道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
将控制台连接到它。