크로스컴파일 툴킷 scratchbox

요즘 아르바이트를 하면서 ARM 크로스툴체인이 필요해서
여러 방법을 시도해 봤는데, 역시 크로스 툴체인 세상은
빌드 자체부터 쉽지가 않은게 빡센 뭔가가 느껴지더군요.
파이썬도 아직까지 표준 배포로는 크로스 빌드가 제대로 안
되는 것을 보면~ 흐흐.

그래서 아예 바이너리 패키지는 없는가 한참을 찾아보다가
Scratchbox라는
것을 찾았습니다. 처음에 scratchbox는 단순히 deb가 있어서
우분투에 깔기 좋겠다 하는 생각으로 깔았는데, 생각보다
좀 더 뭔가 멋지구리한 것이었네요.

scratchbox는 툴체인만 묶어놓은 것이 아니라, 바로 누르자마자
개발과 테스트를 할 수 있는 개발환경이었습니다. 처음에
깔고 나서 scratchbox 로그인 프로그램을 실행하면,
환경 설정 화면이 예쁘게 뜨는데, 그 화면에서 툴체인 종류,
에뮬레이터 종류 같은 것들을 설정해 주면 그 다음부터는
로그인할 때 자동으로 크로스 개발환경으로 셸이 떡 하고 뜹니다.
그 다음이 아주 감동인데, 리눅스의 binfmt를 이용해서
qemu-arm과 직접 연결하는 바람에, 완벽하게 타겟 환경과 호스트
환경을 섞어놓은 듯한! 그러니까.. vim, wget, grep 같이
개발 중에 많이 쓰이는 툴들은 모두 호스트 바이너리로 되어있고
uname, python, perl 같이 빌드/테스트에 직접적으로 영향을 미치는 프로그램들은 모두 타겟 바이너리로 돼서 qemu-arm으로 에뮬레이트가 자동으로 됩니다. 그래서, 파이썬처럼 빌드 도중에 빌드된 바이너리를 쓰는 까다로운 빌드 환경도 깔끔하게 크로스빌드가 가능!

(아래의 호스트는 ubuntu-i386 임)

노키아에서 리눅스 기반 플랫폼 개발을 위한 프로젝트에서 쓴 것 같은데, FreeBSD 포트에도 하나 이런 걸로 만들어 봄 직하군요. 🙂

2 thoughts on “크로스컴파일 툴킷 scratchbox”

  1. 언제나 좋은 글 감사합니다.
    새해 복 많이 받으세요.
    위 글중 굼금한 것이 있어서요. 마지막 콘솔 환경의 메시지들이 PC의 에뮬레이터에서 찍힌건가요 아님 타겟에서 찍은 건가요. ARM에뮬레이션을 이렇게 하는건 처음봐서 @@~
    혼동되는군요.

  2. 새해 복 많이 받으세요. ^.^
    저기 제가 실행해 본 것에서는 호스트에서 qemu-arm으로 에뮬레이션된 것입니다.
    rsh로 타겟 보드에서 직접 실행하는 것을 훨씬 간편하게 하는 방법도 제공하더군요.

Comments are closed.