명령줄을 사용하여 xmodem 파일을 받는 방법은 무엇입니까?

명령줄을 사용하여 xmodem 파일을 받는 방법은 무엇입니까?

나는 그것을 사용하고 있다퍼티또는피코콘모바일 모듈의 EFS 파티션에 일부 파일을 업로드/다운로드해야 하는 몇 가지 실험을 수행하는 동안 AT 명령을 사용하여 모바일 모뎀과 직접 통신합니다. 이를 수행하는 데 사용되는 프로토콜은 다음과 같습니다.X 모뎀대부분의 터미널 유틸리티는 더 이상 이를 포함/지원하지 않는 것 같습니다. 제3자 의존성으로서의 Picocom:

Picocom can send and receive files over the serial port 
using external programs that implement the respective protocols. 
In Linux typical programs for this purpose are:

• rx(1) - receive using the X-MODEM protocol        *
• rb(1) - receive using the Y-MODEM protocol
• rz(1) - receive using the Z-MODEM protocol
• sx(1) - send using the X-MODEM protocol           *
• sb(1) - send using the Y-MODEM protocol
• sz(1) - send using the Z-MODEM protocol

그러나 이들 중 어느 것도 Win/Cygwin에서 작동하지 않으며 이를 컴파일하기 위한 소스 코드를 찾을 수 없습니다. (요즘은 어디서 호스팅되나요?)

Q: 명령줄을 사용하여 Xmodem 데이터를 수신하는 가장 쉬운 방법은 무엇입니까?
(다른 간단한 대안은 무엇입니까?)

다음 Unix SE 질문을 보았습니다.

답변1

이러한 rx/rb/rz/sx/sb/sz도구는 소프트웨어 패키지의 일부 lrzsz이며packages.debian.org의 패키지 소스에 대한 패키지 메타데이터업스트림 소스 위치를 다음과 같이 식별합니다.

https://ohse.de/uwe/software/lrzsz.html

이 모든 프로그램은 원래 Unix 시스템에 대한 터미널 기반 모뎀 연결이 있을 때 사용하도록 설계되었습니다(예: TCP 프로토콜과 같은 네트워크가 아닌 모뎀 회선을 통해 컴퓨터의 터미널 에뮬레이터에서 Unix 직렬 포트 로그인에 직접 연결). /완전히 IP와 관련됨).

그들은 표준 입력/출력에서 파일 전송 프로토콜이 발생할 것으로 기대합니다. picocom유사한 직렬 포트 지향 터미널 에뮬레이터는 필요한 리디렉션을 자동으로 처리하지만 명령줄에서 "원시"로 사용할 계획이라면 이 점을 명심해야 합니다. 입력과 출력을 적절한 직렬 포트 장치로 리디렉션합니다. 그렇지 않으면 장치와 통신을 시도합니다.장치를 직렬로 연결하는 대신.

답변2

먼저 호스트와 대상 간의 연결을 설정해야 합니다.

이 예에서는 2개의 pl2303(rx에서 tx로, 접지에서 접지로)을 사용하여 양쪽에 /dev/ttyUSB0을 생성하는 2대의 컴퓨터(호스트, 대상)를 연결합니다. 대상에 busybox를 배치하면 둘 사이에 연결이 설정됩니다.

대상에서는 initrc에 넣을 수 있는 tty 연결이 필요합니다. 또는 콘솔이 있는 경우 다음과 같이 getty를 사용하여 직접 연결을 열 수 있습니다.
# sh -c 'getty -Lin -l /bin/sh 115200 /dev/ttyUSB0' &

호스트에서는 다음과 같이 대상에 퍼티 연결해야 합니다.
$ putty -serial -sercfg 115200,8,n,1 /dev/ttyUSB0

대상에서 파일 수신을 시작하려면 다음과 같이 Putty 연결에서 rx를 실행할 수 있습니다.
# rx file.bz2

호스트에서 파일 전송을 시작하려면 다음과 같이 sx를 실행할 수 있습니다.
$ sx file.bz2 < /dev/ttyUSB0 > /dev/ttyUSB0

블록이 전송되는 것을 볼 수 있습니다. 커피를 마시고 기다립니다. 이는 115200보드(약 11kb/s)라는 것을 기억하세요.

관련 정보