我尝试在 1 个终端上以 root 身份使用 cat 从 /dev/ttyS0 读取:
cat < /dev/ttyS0
并以 root 身份从另一个终端向串行端口发送消息,并带有 echo:
echo -ne "hello" > /dev/ttyS0
但我没有从猫那里得到任何东西。有人可以告诉我问题的原因吗?
我尝试在 1 个终端上以 root 身份使用 cat 从 /dev/ttyS0 读取:
cat < /dev/ttyS0
并以 root 身份从另一个终端向串行端口发送消息,并带有 echo:
echo -ne "hello" > /dev/ttyS0
但我没有从猫那里得到任何东西。有人可以告诉我问题的原因吗?
该设备
/dev/ttyS0
通常对应于您计算机的第一个串行端口。现在的电脑没有串口,但是一些USB设备可能会出现在你系统的/dev/ttyS
x端口上。如果设备在启动过程中连接到您的计算机,您可以通过运行以下命令找到设备名称:journalctl -b | grep ttyS
如果设备尚未连接,请先运行命令:
journalctl -f | grep ttyS
然后连接设备;您应该会看到一条指示端口号x的消息。
如果您尝试将数据发送到桌面系统的虚拟控制台,请先按组合键Ctrl+ Alt+F4并登录以文本模式显示的虚拟控制台。然后运行命令
who am i
验证您登录的设备实际上是
/dev/tty4
(上述命令输出的第二个字应该是tty4
这种情况)。在主图形屏幕上(可以通过按组合键Ctrl++来访问Alt)F2打开终端并运行命令:
echo "Hello" >/dev/tty4
Ctrl使用++切换回控制台Alt并F4查看显示的消息。
同样在主图形屏幕上运行以下命令:
cat </dev/tty4
切换回控制台并尝试输入一些字符。某些字符将回显到屏幕上(按
bash
),有些则不会。未回显的字符将作为cat
命令的输出显示在主图形屏幕上。原因是两个进程正在读取同一个设备(一个在文本控制台上bash
,另一个在图形屏幕上,即cat
命令)。笔记:
对于能够读取和写入串行端口的非 root 用户,该用户需要对该设备具有读取和写入权限。在 Ubuntu 中,这可以通过
dialout
使用sudo addgroup _your_user_ dialout
您可能必须注销然后重新登录才能使此更改生效。