스크래치박스, Scratchbox
2009/02/06
지금은 사용하는 컴파일러 및 부가 라이브러리 셋이 후져서 원단(?) gcc를 쓰고 있음.
일단 구자료를 복구해놓음.
이것저것 뒤지다가 찾은 글에서 힌트를 얻음.
http://monac.egloos.com/1100846
나 군대 다닐 적엔 이런 것 없었다구!! ㅠ.ㅠ
- 크로스컴파일 툴킷을 받아왔는데 뭔가 잘 안 된다.
- 간지나게 컴파일러 부터 빌드해보다가 그냥 간지는 포기하기로 했다.
- 몬타비스타 CD에서 복사해서 잘 썼는데 요즘엔 지원이고 뭐고 없다.
이런 분들께 강추함.
. . .
일전에도 소개한 적 있지만 크로스 빌드를 아주 쉽게 해준다.
크로스 빌드할 때 생기는 문제는 보통 다음과 같다.
- Makefile을 대충 만들다 보니 /usr/local 같은 호스트 시스템 디렉토리를 참조한다.
- 사실 꼼꼼하게 만들어도 이런 걸 잘 피하기는 쉽지 않다.
- ./configure 명령 시에 각종 prefix 를 잘 지정해야 하나 이 일조차도 쉽지 않다.
- 리눅스 배포판 환경은 너무 다양하고, 야메와 짬밥 또한 많다.
- 빌드 중에 지가 필요한 툴을 지가 빌드해서 쓰는데 -> 타겟 용으로 빌드되는 바람에 -> 호스트에서 안 돌아가는 경우
스크래치박스는 다음과 같은 일을 해준다.
- 크로스 컴파일 툴킷을 제공 (arm gcc, linker 등등)
- 기본 라이브러리 셋을 제공 libc 등.
- 크로스에서 동작 가능한 기본 잡다 유틸 제공
- 크로스 빌드 쉘을 지원
- 대강의 테스트 까지 가능.
- 온전한 RFS (root file system)를 속여서 타겟용 /usr/local 등과 호스트의 /usr/local을 바꿔치기 함.
즉. PC용 리눅스에서 타겟용 리눅스를 에뮬레이션 하여 cygwin 쓰듯이 만들어 준다.
한 번만 써봐. 10년 묵은 속병이 낫고 아침 밥상이 달라져. (응?)
접속.
우분투/ 데비안 기준 설명
/etc/apt/source.list 맨 밑에 다음 줄을 추가
deb http://scratchbox.org/debian stable main deb http://scratchbox.org/debian legacy main
apt-get update -> 죽죽 목록을 받아옴
apt-get search scratchbox -> 스크래치 박스 관련 패키지 검색
apt-get install scratchbox...... -> 관련 패키지 설치
DirectFB + GTK+ 빌드 기준으로 다음의 툴킷이 가장 빌드 잘 됨. (ARM)
compiler : arm-linux-2006q3-27
arch. : glibc
devkit : apt-https, cputransp, debian 기타등등 올 설치
CPU-transparency : qemu-arm-0.8.2-sb2
가끔 에러목록에 dwarf 메시지가 보이면 -g 옵션을 과감히 삭제.
모르겠으면 이거저거 받아서 올 설치.
login -> 루트 계정으로는 동작 안 함. 잘 못 건드려서 호스트 쪽 shared library라도 건드리면 그 날로 시스템 박살나는 것을 방지.
예) make install 했는데 잘 안 되서 수동으로 cp 했는데 뭔가 호스트 시스템에 덮어써졌다! 걍 죽자.
cd /scratchbox ./login -> 스크래치박스 에뮬레이터 쉘로 접속
sb-menu -> 뭔가 뜬다.
setup 화면으로 들어간 후 위에서 지정한 환경으로 설정. fakeroot 를 설치하는 데 시간 걸리므로 죽었다고 죽이지 말고 기다리셈.
간단한 hello world 짜서 빌드 -> 실행 해 봄.
같은 바이너리를 타겟에 복사해서 실행 해 봄
결과 : 우왕ㅋ굳ㅋ
이제 필요한 거 마구 빌드. 가끔 에러나면 set 쳐보고 PKG_CONFIG_PATH가 정확히 일치하는 지 확인해보자.
언제나 불친절하고 정리 안 되는 티루트에 오신것을 환영합니다.