我在自定义板上有一个嵌入式Linux,我想通过它的串口发送和接收文件。
与此设备通信的唯一方法是通过串行通信,并且该设备在此串行端口上提供一个控制台。
这个董事会没有kermit,既没有busybox rx也没有lrzsz。
发送文件
我能够发送文件到董事会以下的这条线。
Host side Remote side
cat file | base64 > file_b64
cat > file_b64
minicom's ctrlA-S => send 'file_b64'
cat file_b64 | base64 --decode > file获取文件
现在我想从远程系统检索一个文件。
Minicom有一个接收文件的工具,但是由于我只有串口的控制台使用minicom在远程端发出命令,所以我找不到怎么做。
我尝试过在主机端使用kermit,但似乎还需要在远程端使用kermit。
我还试图逆转发送方法,但没有成功,因为我没有从主机端的串口接收到任何东西。
Host side Remote side
cat file | base64 > file_b64
(sleep 10; cat file_b64 > /dev/ttyS0) &
minicom's ctrlA-X => exit minicom
cat /dev/ttyUSB0 > file_b64不能使用minicom的接收工具,因为它只支持xmodem、ymodem、zmodem和kermit传输,而不支持ascii。
发布于 2018-08-03 15:14:19
最后发现我在接收方发出了错误的命令。
接收命令应为:cat < /dev/ttyUSB0 > file_b64
从远程接收:
Host side | Remote side
|
| #Encode to base64
| cat file | base64 > file_b64
|
| #Send after timeout
| (sleep 10; cat file_b64 > /dev/ttyS0) &
|
#############################################################
### Exit minicom but keep configuration (ctrlA-Z, then Q) ###
#############################################################
|
#Receive file |
cat < /dev/ttyUSB0 > file_b64 |
|
#Decode file |
cat file_b64 | base64 -di > file |发布于 2018-12-07 13:54:56
总结上面的文章,我发现如下所示:
开始接收目标:
cat | base64 -d > filetotarget.bin使用Ctrl+Q退出minicom,然后在主机上运行:
cat filetotarget.bin | base64 > /dev/ttyUSB0返回minicom,按Ctrl键完成接收过程.
启动延迟发送目标:
sleep 10 ; cat filefromtarget.bin | base64使用Ctrl+ Q退出minicom,然后开始接收主机:
cat < /dev/ttyUSB0 | base64 -di > filefromtarget.binhttps://unix.stackexchange.com/questions/460342
复制相似问题