[t:/]$ 지식_

스크래치박스, Scratchbox

2009/02/06

지금은 사용하는 컴파일러 및 부가 라이브러리 셋이 후져서 원단(?) gcc를 쓰고 있음.

일단 구자료를 복구해놓음.


이것저것 뒤지다가 찾은 글에서 힌트를 얻음.

http://monac.egloos.com/1100846

나 군대 다닐 적엔 이런 것 없었다구!! ㅠ.ㅠ

  1. 크로스컴파일 툴킷을 받아왔는데 뭔가 잘 안 된다.
  2. 간지나게 컴파일러 부터 빌드해보다가 그냥 간지는 포기하기로 했다.
  3. 몬타비스타 CD에서 복사해서 잘 썼는데 요즘엔 지원이고 뭐고 없다.

이런 분들께 강추함.

. . .

일전에도 소개한 적 있지만 크로스 빌드를 아주 쉽게 해준다.

크로스 빌드할 때 생기는 문제는 보통 다음과 같다.

  1. Makefile을 대충 만들다 보니 /usr/local 같은 호스트 시스템 디렉토리를 참조한다.
  2. 사실 꼼꼼하게 만들어도 이런 걸 잘 피하기는 쉽지 않다.
  3. ./configure 명령 시에 각종 prefix 를 잘 지정해야 하나 이 일조차도 쉽지 않다.
  4. 리눅스 배포판 환경은 너무 다양하고, 야메와 짬밥 또한 많다.
  5. 빌드 중에 지가 필요한 툴을 지가 빌드해서 쓰는데 -> 타겟 용으로 빌드되는 바람에 -> 호스트에서 안 돌아가는 경우

스크래치박스는 다음과 같은 일을 해준다.

  1. 크로스 컴파일 툴킷을 제공 (arm gcc, linker 등등)
  2. 기본 라이브러리 셋을 제공 libc 등.
  3. 크로스에서 동작 가능한 기본 잡다 유틸 제공
  4. 크로스 빌드 쉘을 지원
  5. 대강의 테스트 까지 가능.
  6. 온전한 RFS (root file system)를 속여서 타겟용 /usr/local 등과 호스트의 /usr/local을 바꿔치기 함.

즉. PC용 리눅스에서 타겟용 리눅스를 에뮬레이션 하여 cygwin 쓰듯이 만들어 준다.

한 번만 써봐. 10년 묵은 속병이 낫고 아침 밥상이 달라져. (응?)

http://www.scratchbox.org/

접속.

우분투/ 데비안 기준 설명

/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가 정확히 일치하는 지 확인해보자.

언제나 불친절하고 정리 안 되는 티루트에 오신것을 환영합니다.









[t:/] is not "technology - root". dawnsea, rss