GNU 화면에서 xmodem 또는 kermit 프로토콜로 파일 보내기


23

GNU를 통해 RS-232 장치로 작업 screen합니다.

$ screen /dev/ttyUSB0 115200

어느 시점에서 나는 xmodem또는 kermit프로토콜을 사용하여 장치에 로컬 파일을 보내야 합니다. Windows에서는 해당 메뉴 항목이있는 TeraTerm을 사용합니다. GNU 화면에서 어떻게 이것을 할 수 있습니까?

답변:


25

xmodem을 통해 파일을 전달하는 가장 좋은 방법은를 사용하는 것 sx입니다. 데비안에서이 응용 프로그램은 'lrzsz'패키지의 일부입니다.

데비안에서 :

apt-get 설치 화면 lrzsz

화면 / dev / ttyUSB0 115200

그런 다음을 누르고 Ctrl-A다음을 :입력하십시오.

exec !! sx yourbinary.bin

xmodem 프로토콜을 통해 ttyUSB0에 파일을 보냅니다.


이 작업을 screen cu다른 패키지 와 함께 또는 다른 패키지 와 비 대화식으로 실행할 수 있습니까 ?
Vorac

3
@Vorac 당신은 항상 할 수 있습니다sx binary.bin | socat FILE:/dev/ttyUSB0,b115200,raw -
GnP

2
수신 명령을주는 방법Give your local XMODEM receive command now
AQU

그 패키지는 어디에 유지됩니까? 찾을 수 없습니다.
not2qubit

8

당신은 Z 모뎀 사용하려는 경우 당신은 설정해야 zmodem하는 옵션 pass, 화면 세션이 이미 실행중인 경우, 눌러 CTRL+A :그냥 입력 zmodem pass. 데이터를 보내려면 패키지 의 sz명령을 사용하십시오 lrzsz.

화면을 통해 데이터를 수신하려면 값을로 설정해야합니다 catch.


zmodem catch내가 몇 년 동안 검색되었습니다 옵션입니다! 좋은 승차, 미니 컴.
ijustlovemath

4

xmodem을 사용하여 xbee로 .bin 파일의 직렬 전송을 자동화해야 하므로이 조잡한 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

2

OSX에서 화면을 통해이 작업을 수행하려는 경우 약간의 수정으로 user32704에 의해 작성된 절차를 따를 수 있습니다. 먼저 소스에서 lrzsz를 빌드해야합니다. 여기에서 찾을 수 있습니다.

https://ohse.de/uwe/releases/lrzsz-0.12.20.tar.gz

그런 다음 대신 다음 exec !! sx yourbinary.bin을 사용해야합니다.

exec !! lsz -X yourbinary.bin

3
양조장 설치 lrzsz
Daniele Brugnara

sudo port install lrzsz
miken32
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.