2007년 11월 11일 일요일

IEEE1394(based on TMO-LINUX) 설치 및 컴파일


일단, IEEE1394 (based on TMO-LINUX)설치.

1. 패키지 다운로드 및 인스톨
config파일과 install파일을 포함한 kernel, law1394, tmolib 소스들을 함께 받아야한다. 그리고 install.sh파일을 실행시킨다.

$ ./install.sh

설치는 자동으로 /opt/TMO-LINUX/에 설치되며, 압축도 자동으로 풀어준다.


2. buildroot설치
buildroot를 다운받는 곳은 http://buildroot.uclibc.org/downloads 이다. (다운받기)
여기서 다운 받은 buildroot는 bz2로 압축이 되어 있으므로 tar를 사용할때 j옵션을 준다.

압축을 풀고나면 buildroot폴더가 생성이 되는데 이 안에서 컴파일을 해주어야한다. (이 컴파일 시간은 대략 1시간 좀 넘게 걸린다-_- 에러나면 끝장이다-_-;)

$ make menuconfig

여기서 옵션을 설정을 하는데, IEEE1394(based on TMO-LINUX)를 컴파일하기 위해서는 몇가지 설정을 해주어야하는 옵션이 있다.

우선, architecture는 i386. (다른보드에서 한다면 다른걸로 해도 상관없지만 1394는 대부분 i386보드다.)
그리고 Toolchain으로 들어가서 gcc버전을 바꾸어주는 부분을 찾아 gcc버전을 제일 낮은 것으로 바꾸고, cross complier와 library를 체크한다.
왜인지는 모르겠으나 'snprinf' 에러가 자꾸 발생하여 locale도 설정해주었다.

즉, Toolchain에서 설정 체크를 해주어야하는 것은 다음과 같다.

GCC compiler Version (gcc...) //gcc 버전 가장 낮은 걸로
Enable locale/gettext/i 18n support

C++ cross-compiler support
Build/install c++ compiler and libstdc++

나머지는 기본 설정으로 건드리지 않고 둔다.
그리고 저장을 하고 나와서 컴파일을 하면 된다.

$ make

(덧,
나는 kernel header version도 바꾸어 주었다. 2.6.22 버전의 커널을 사용하면 추가된 것이 많아서 enable여부나, 어떤 것을 선택할 것인가를 컴파일 도중에 물어본다. 그것이 귀찮으면 2.6.21 버전의 커널을 사용하시길...)

3. 소스 컴파일
buildroot를 설치했다면 1394소스를 컴파일한다.
compiler는 물론 cross로 i386-linux-gcc를 사용한다.
make파일에서 compiler를 지정하고 "make"명령을 사용하면 주주주주죽~ 컴파일되어가는 것을 볼 수 있다.

4. 기타 주의사항

make하다가 에러가 나면, 일단 마음을 가라앉히고 모니터를 원망스럽게 쳐다본 뒤, 컴퓨터를 한대 깐다-_-) 왜냐면, 다시 한시간동안 컴파일을 해야하기 때문이다.
보통 컴파일하다가 에러가 나는 경우는 옵션을 잘못 지정해 주었기 때문인 경우가 많다.
그럼 menuconfig를 실행시켜서 다시 옵션을 지정하고 컴파일을 해야하는데, 이 때 생성된 다른 폴더들 (예를들면 build_i386이라든가 하는)을 삭제하고 처음부터 다시 컴파일을 하는 것이 좋다.
build_i386과 toolchain_i386만 지우면 된다고 하지만, 좀 찝찝하면 project_i386까지 지워버리면 된다.

댓글 없음:

댓글 쓰기