kermit 및 lrzsz 없이 시리얼을 통해 파일 검색

kermit 및 lrzsz 없이 시리얼을 통해 파일 검색

맞춤형 보드에 Linux가 내장되어 있으며 직렬 포트를 통해 파일을 보내고 받고 싶습니다.

장치와 통신하는 유일한 방법은 직렬을 통하는 것이며 장치는 이 직렬 포트에 콘솔을 제공합니다.

보드에는 kermit둘 다 busybox rx없습니다 lrzsz.

- 원격으로 파일 보내기

다음과 같이 파일을 보드에 보낼 수 있습니다이 스레드.

Host side                              Remote side

cat file | base64 > file_b64
                                       cat > file_b64
minicom's ctrlA-S => send 'file_b64'
                                       cat file_b64 | base64 --decode > file

- 원격에서 파일 가져오기

이제 원격 시스템에서 파일을 검색하고 싶습니다.

Minicom에는 파일을 수신하는 도구가 있지만 minicom의 직렬 포트 콘솔만 사용하여 원격 측에서 명령을 실행하기 때문에 이를 수행하는 방법을 찾을 수 없습니다.

호스트 측에서 kermit을 사용해 보았는데, 원격 측에서도 kermit을 사용해야 할 것 같습니다.


편집하다:

또한 전송 방법을 반대로 시도했지만 호스트 측 직렬 포트에서 아무것도 수신하지 못하여 성공하지 못했습니다.

Host side                              Remote side

                                       cat file | base64 > file_b64
                                       (sleep 10; cat file_b64 > /dev/ttyS0) &
                                       minicom's ctrlA-X => exit minicom
cat /dev/ttyUSB0 > file_b64

미니콤의 수신툴은,,,, 전송만 지원 xmodem하고 ASCII는 지원하지 않기 때문에 사용할 수 없습니다.ymodemzmodemkermit


콘솔에 명령을 입력하지 않고 원격에서 파일을 검색하는 방법이 있습니까?

답변1

마침내 내가 수신측에서 잘못된 명령을 내리고 있다는 것을 알아냈습니다.

수신 명령은 다음과 같아야 합니다.cat < /dev/ttyUSB0 > file_b64

일반화하다

원격에서 수신:

          Host side                |             Remote side
                                   |
                                   |    #Encode to base64
                                   |    cat file | base64 > file_b64
                                   |
                                   |    #Send after timeout
                                   |    (sleep 10; cat file_b64 > /dev/ttyS0) &
                                   |
       #############################################################
       ### Exit minicom but keep configuration (ctrlA-Z, then Q) ###
       #############################################################
                                   |
#Receive file                      |
cat < /dev/ttyUSB0 > file_b64      |
                                   |
#Decode file                       |
cat file_b64 | base64 -di > file   |

답변2

위 게시물을 요약하면 다음과 같습니다.

보내다.

대상 수신 시작:

cat | base64 -d > filetotarget.bin

미니컴 종료Ctrl-A + Q그런 다음 호스트 시스템에서 실행하십시오.

cat filetotarget.bin | base64 > /dev/ttyUSB0

미니콤으로 돌아가서 다음을 누르세요.Ctrl-D수신 프로세스를 완료합니다.

인수하다.

대상으로 지연 전송 시작:

sleep 10 ; cat filefromtarget.bin | base64

미니컴 종료Ctrl-A + Q. 그런 다음 호스트에서 수신을 시작합니다.

cat < /dev/ttyUSB0 | base64 -di > filefromtarget.bin

관련 정보