직렬 터미널을 통해 바이너리 파일 보내기

직렬 터미널을 통해 바이너리 파일 보내기

직렬 터미널과 관련된 문제가 있습니다. 때로는 다음과 같은 명령을 사용하여 장치에 연결할 수 있습니다 screen. 예는 다음과 같습니다 screen /dev/ttyUSB0 115200.

Linux ARM 장치를 통해 연결할 수 있습니다(로그인 단계를 통해서도 가능). 그래서 모든 텍스트를 쉽게 전송할 수 있습니다. 이제 이를 통해 바이너리 파일을 복사하고 싶습니다. 어떻게 하나요?

답변1

사용하고 싶지 않을 수도 있지만 screen전용 직렬 터미널 에뮬레이션 프로그램 minicom(예: ZMODEM 등)의 기본 지원 기능이 내장되어 있는 전용 직렬 터미널 에뮬레이션 프로그램을 사용하세요.

로컬 시스템에서 ARM 장치로 파일을 전송하려면 두 장치 모두에 ZMODEM 프로토콜 명령줄 도구를 설치해야 합니다. 적어도 데비안에서는 lrzsz.

먼저 ARM 장치에 로그인하고 rz해당 장치에서 명령을 실행(Zmodem 수신)합니다. ZMODEM 지원 터미널 에뮬레이션 프로그램에서 사용할 수 있는 특수 "수신 대기 중" 문자 시퀀스를 출력합니다(예 minicom: 이 시점에서 터미널 에뮬레이터 프로그램은 자동으로 원격 ARM 장치로 보낼 파일을 선택할 수 있도록 허용해야 합니다. .이런 일이 발생하지 않는 경우에도 터미널 에뮬레이터에서 "ZMODEM을 사용하여 파일 보내기"(또는 "파일 업로드...") 기능을 수동으로 선택할 수 있습니다.

일부 터미널 에뮬레이터에는 ZMODEM 프로토콜의 완전한 내부 구현이 있을 수 있지만 (Zmodem 보내기) 명령줄 도구 minicom만 사용하여 실제 파일 전송을 수행하므로 해당 패키지도 로컬로 설치 sz해야 합니다 .lrzsz

원격 ARM에서 로컬 시스템으로의 전송은 기본적으로 동일한 방식으로 작동합니다. 즉 sz <filename>, 원격 측에서 명령을 실행하면 터미널 에뮬레이터가 자동으로 들어오는 전송("다운로드")을 감지해야 합니다.

sz및 도구는 원격 측에서 사용하도록 설계 되었으며 rz셸 세션의 표준 입력 및 출력을 통해 파일을 전송하므로 로컬에서 명령을 사용하려면 특정 입력/출력 리디렉션이 필요하며 파일 전송 프로그램이 실행되는 동안 터미널 에뮬레이터는 읽기를 중지해야 합니다. .직렬 포트. 이 모든 것은 sz외부 파일 전송 도구를 수용하는 데 필요한 기능이 없는 이와 같은 프로그램을 로컬에서 사용/도구하는 것을 매우 불편하게 만듭니다.rzscreen

관련 정보