2015-02-03 9 views
0

TI의 DM368 프로세서를 기반으로 커널 버전 2.6.32.17 및 BusyBox v1.13.2 (2011-03-24 18:58 : 44 CDT) 파일 시스템.minicom/picocom은 zmodem을 사용하여 파일을 임베디드 리눅스 보드로 전송하지 않습니다.

내 컴퓨터 (우분투 14.04)에서 직렬 포트를 통해 minicom/picocom의 zmodem을 사용하여 파일을 전송할 때 문제가 있습니다.

문제는 내가 minicom 또는 picocom에서 zmodem을 사용하여 파일을 보낼 때 시간 초과가 발생했으며 "Transfer Incomplete"라고 말합니다. 보드에서 어떤 종류의 데몬이나 프로그램을 실행해야합니까?

zmodem은 매우 간단하고 zmodem 및 임베디드 리눅스 보드에 문제가 없었습니다. 여기

는^A + S를 눌러 파일의 경로 이름을 입력 한 후 picocom의 출력이다

picocom zmodem error.png

및이^A + S를 눌러 원하는 파일을 선택한 후 전무 출력이다

 +-----------[zmodem upload - Press CTRL-C to quit]------------+         
    |RROR               |         
    |[email protected]:/home# Retry 0: Got ZNAK      |         
    |-sh: Retry 0: Got ZNAK          |         
    | not [email protected]:/home#        |         
    |Transfer incomplete           |         
    |                |         
    | READY: press any key to continue...       |         
    +-------------------------------------------------------------+         

무엇이 잘못 되었나요?

+1

* "어떤 종류의 데몬이나 프로그램을 보드에서 실행해야합니까?"* - 가장 확실하게 수행합니다. U-Boot로 수신하려면 http://stackoverflow.com/questions/28042023/u-boot-flash-emmc-ttl-serial/28053750#28053750을 참조하십시오. 커널이 실행되고있는 동안 수신하려면 [lrzsz 프로그램] (https://ohse.de/uwe/software/lrzsz.html)을 교차 컴파일하고 설치하십시오. – sawdust

+0

감사합니다. 네, 커널을 실행하는 동안 minicom을 사용하여 파일을 전송하고 싶습니다. 그래서 나는 lrzsz packege를 십자가로 컴파일했고 lrz와 lsz라는 두 개의 바이너리를 얻었다. 이제 보드에 복사 한 후 어떻게해야합니까? – mostafanfs

+1

* "이제해야 할 일은 ..."* - 소스 패키지에있는 설명서를 찾거나 읽었습니까? 예 : ** man ** pages? 'lrz'는 수신 용이고'lsz'는 전송 용임을 알았습니까? 'lrz --help'을 시도 했습니까? – sawdust

답변

1

톱밥 덕분에 나는 이것을 알아낼 수있었습니다. 문제는 단순히 rz 및 sz 프로그램이 올바른 디렉토리에 설치되어 있지 않다는 것입니다. 분명히 minicom 또는 더 정확한 zmodem이 프로그램을 필요로하고 파일을 보내거나 받기를 원할 때마다 호출합니다.

export CC=arm-none-linux-gnueabi-gcc 
./configure --target=arm-linux 
make 

을 그리고 각각 SZ 및 RZ에 LSZ 및 lrz에서 src 디렉토리에 두 개의 생성 된 바이너리의 이름을 변경하고 바로 보드는/usr/bin 디렉토리에 복사 : 그래서 하나는 다음과 같이 패키지를 lrzsz 크로스 컴파일해야한다. 이렇게하면 minicom 또는 다른 터미널에서 zmodem을 사용하여 파일을 보내고받을 수 있습니다.

1

귀하의 u- 부트는 zmodem 전송 프로토콜을 지원해야합니다 (보통은 그렇지 않습니다!) 그러나 기본적으로 지원되는 kermit 전송 프로토콜을 사용할 수 있습니다.