使用GNU屏幕通过xmodem或kermit协议发送文件


23

我通过GNU使用RS-232设备screen

$ screen /dev/ttyUSB0 115200

在某个时候,我需要使用xmodemkermit协议将本地文件发送到设备。在Windows上,我使用具有相应菜单项的TeraTerm。如何在GNU屏幕上实现此目标?

Answers:


25

通过xmodem传递文件的最佳方法是使用sx。在debian中,此应用程序是'lrzsz'软件包的一部分。

在Debian中:

apt-get安装屏幕lrzsz

屏幕/ dev / ttyUSB0 115200

然后按Ctrl-A,然后按:

高管!sx yourbinary.bin

这将通过xmodem协议将文件发送到ttyUSB0


可以与screen cu其他程序包非交互地执行此操作吗?
沃拉克2015年

3
@Vorac您可以永远做sx binary.bin | socat FILE:/dev/ttyUSB0,b115200,raw -
GnP

2
如何发出接收命令Give your local XMODEM receive command now
AQU

该软件包在哪里维护?我找不到
not2qubit

8

如果要使用zmodem,则必须将zmodem选项设置为pass,如果您的屏幕会话已在运行,请按CTRL+A :并仅输入zmodem pass。要发送数据,只需使用包中的sz命令lrzsz

如果要通过屏幕接收数据,则必须将值设置为catch


zmodem catch是我多年来寻找的一个选项!很好,minicom。
ijustlovemath 17-4-11的

4

我需要使用xmodem自动将.bin文件串行传输到xbee,所以我使用了这个草率的bash代码:

echo "Starting connection..."
screen -d -m -S uart_con /dev/ttyO1 115200
sleep 1
screen -S uart_con -X stuff 'F'$(echo -ne '\015')
sleep 1
screen -S uart_con -X exec \!\! sz -X /home/file_directory/example.abs.bin
echo "now transfering... "
sleep 20
pkill screen

第三行向另一侧(xbee)发送命令以开始侦听文件传输。因此,您可能只擅长:

screen -d -m -S uart_con /dev/ttyUSB0 115200
screen -S uart_con -X exec \!\! sz -X /path_to_file/example.file

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.