요즘은 많이 쓰이지 않지만 이더넷이나 mmc 같은 별다른 전송 수단이 없을 때

RS232 시리얼 콘솔에서 바로 xmodem이나  zmodem으로 파일을 송수신할 때 쓰이는

lrzsz라는 유틸리티를 크로스컴파일하는 방법을 소개합니다.

사실 이 유틸은 x86용으로는 쉽게 구할 수 있지만 임베디드에서 실행하기 위해서는 따로 빌드가 필요할 수 있습니다.


먼저 아래 사이트에서 소스를 다운 받습니다. 현재까지 최신 버전은  lrzsz-0.12.20.tar.gz 입니다.

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


그리고 압축을 해제합니다.


아래와 같이 빌드를 수행합니다. 크로스 컴파일이라 옵션이 조금 많습니다.

$ CC=arm-none-linux-gnueabi-gcc RANLIB=arm-none-linux-gnueabi-ranlib ./configure  --host=arm-none-linux-gnueabi --build=i686-pc-linux-gnu --prefix=/usr/arm-none-linux-gnueabi


--prefix는 설치될 장소를 기본 경로가 아닌 별도의 경로를 지정해 줄 경우 넣습니다. 크로스 컴파일의 경우 꼭 넣어줍니다.

그렇지 않으면 기존 호스트에 설치된 유틸과 꼬일 수 있습니다.

빌드를 위해 make를 수행합니다.

$ make

그리고 설치합니다.

$ make install


설치가 끝나면 조금전 configure할 때 --prefix로 넣은 디렉토리에 빌드한 바이너리가 생성 됩니다.

$ cd /usr/arm-none-linux-gnueabi

$ cd bin/
bin$ ls
lrb  lrx  lrz  lsb  lsx  lsz


생성된 바이너리만 임베디드 보드의 파일시스템으로 복사해서 사용하면 됩니다.