如何使用串行连接作为 shell 的输出?

如何使用串行连接作为 shell 的输出?

我有一个串行设备 ( /dev/ttyACM0),它连接到微控制器的串行端口。微控制器将其从串行连接上获得的文本绘制到屏幕上。我想将该屏幕用作 Linux 终端的显示器。

我可以有点让它显示在终端上运行的命令的输出,但我还希望它显示我在提示符中编写的文本(在我输入时)。

所以我想要的基本上是我的终端不缓冲输入,以便它可以实时发送,然后出于同样的原因,我还希望 shell 的输出也不被缓冲。

我尝试了以下方法:
unbuffer bash > /dev/ttyACM0
unbuffer bash | /dev/ttyACM0
stdbuf -i0 -o0 bash > /dev/ttyACM0

但是,这些都不起作用。第一个可以半正确地输出文本,但不允许我在计算机的终端上输入任何内容。

即使以超级用户身份运行,第二个也会出现权限被拒绝错误。

第三个允许我输入命令,并且也能半正确地输出文本,但根本不发送输入提示。

有什么方法可以实现我的愿望吗?

相关内容