YMODEM 프로토콜이 필요한 장치에 직렬 연결을 통해 라즈베리 파이의 펌웨어 파일을 업로드하려고 합니다. 많은 조사 끝에 나는 이 sz --ymodem [file]
명령이 이 작업을 수행하는 도구라는 것을 계속 발견했습니다. 다음 명령을 사용하여 장치와 성공적으로 통신했습니다.이것예를 들어, 운이 좋지 않습니다 sz
.
설명서를 읽었 sz
는데 질문이 남습니다. 장치로 보내는지 어떻게 확인하나요? USB를 통해 연결되며 포트가 있습니다 /dev/ttyACM0
. 다른 예에서는 기본적으로 원격 호스트에서 로컬 호스트로 전송하는 방법에 대해 설명 sz
하지만 이는 다른 설명만큼 심층적입니다.
장치에는 파일 전송을 예상하도록 지시하는 명령이 있습니다. 이 명령이 이를 대체한다고 생각 rz
하지만 장치 문서에는 "하이퍼터미널을 통한 YMODEM 전송을 위해 장치를 준비합니다"라고 나와 있습니다. HyperTerminal과 전용 프로그램을 통해 성공적으로 파일을 보냈지만 Linux 명령줄에서 이 작업을 수행할 수 있어야 합니다.
나는 이것이 경험이 부족한 경우라고 확신하며 분명한 것을 놓치고 있습니다. 그러나 이 파일 전송을 처음부터 끝까지 정확히 어떻게 수행합니까/내가 뭘 잘못하고 있습니까?
답변1
rz
sz
사람들이 대형 컴퓨터 시스템에 연결된 모뎀에 전화를 걸어 로그인하던 시절로 거슬러 올라갑니다 . 파일을 다시 보내려면 kermit, xmodem, ymodem 및 zmodem과 같은 여러 프로토콜 중 하나를 사용할 수 있습니다.
파일이 전송되는 채널은 실제 로그인 세션입니다. 따라서 호스트에서 전송을 시작한 다음 프로토콜 핸드셰이크를 시작합니다. 그런 다음 터미널 프로그램에서 전송 프로토콜 옵션을 활성화합니다.
터미널 프로그램과 호스트가 프로토콜에서 자신의 위치를 확립하고 파일을 전송할 수 있기를 바랍니다.
Zmodem은 실제로 호스트가 전송을 시작할 때 자동 시작을 지원하는 터미널 프로그램이 전송을 시작하도록 일련의 플래그를 정의합니다.
TELIX는 이 기능을 지원하는 인기 있는 터미널 프로그램입니다.
Hyperterm은 PC에서 다양한 전송 프로토콜을 지원하는 데 사용됩니다. 직렬 포트를 통해 Pi에 연결되어 있다면 이것이 바로 여러분이 찾고 있는 것일 수 있습니다.
당신이 해야 할 일은 Raspberry Pi에 있는 자신을 상상하고 Raspberry Pi 자체에서 터미널 프로그램을 실행하여 해당 직렬 포트와 통신하는 것입니다.
내 경험에 따르면 Linux에서 실행되는 더 나은 직렬 터미널 프로그램은 minicom
ymodem을 지원하는 프로그램입니다.
apt-get install minicom
minicom
올바른 /dev/ttySxxx(분명히 /dev/ttyACM0)를 실행 하고 설정하세요.
sudo minicom -s
그리고 메뉴를 따라가면
연결되면 모뎀을 사용하여 파일을 전송할 차례입니다. 컨트롤-A, "S"를 입력한 다음 메뉴 옵션을 사용하여 y모뎀과 보내려는 파일을 선택하세요.
시간이 좀 지났지만 한번 해보세요
답변2
sudo minicom -s
이렇게 하면 설정 메뉴에 들어갈 것 같아요 . 포트가 FTDI rs232, rs422 USB-직렬 케이블과 같은 경우 포트가 /dev/ttyUSB로 설정되어 있는지 확인하세요. 어댑터를 찾을 수 없으면 열리지도 않습니다. 또한 파일을 보내려면 한 컴퓨터에서 보내고 다른 컴퓨터에서는 빠른 수신을 선택해야 합니다... Android용 FTDI UART 터미널을 사용해 보세요. 조금 더 쉽고 바로가기 버튼이 있습니다.