embedded
目标是使用serial
接口连接到设备。到目前为止,我已经使用过:
stty -F /dev/ttyS2 115200 cs8 ixoff
socat readline,history=/etc/socat.history /dev/ttyS2,raw,echo=0
它工作得很好,但后来我发现在此期间有一些选项system boot
要求您按一个键而不按enter
,并readline
在那里失败。所以我的想法是绑定ttyS2
to cons0
,但后来我发现了多个问题,比如无法退出(ctr+c
,ctr+q
ctr+]
甚至esc
不起作用),backspace
并且delete
不起作用,字母输入两次等。所以经过一些试验和错误,我想出了这个:
socat /dev/cons0,raw,echo=0,crnl /dev/ttyS2,raw,echo=0,escape=0x03,crnl
raw
在双方允许一个单一key press
的触发一个boot option
echo=0
两侧防止key press
翻倍crnl
两边防止enter
key press
翻倍escape=0x03
允许我quit
按ctr+c
问题是,当我退出时,我cons0
的一切都搞砸了,好像它以某种方式保留了raw,echo=0,crnl
设置。我知道这个问题对于我的场景来说可能太具体了,但我只需要一种简单的方法来像我一样将击键发送到串行putty
(这在我的平台上不可用)。我使用socat
它是因为它非常轻量级,不需要任何额外的库,而且显示的命令是使用expect
.
非常感谢任何想法和建议。