2012년 2월 22일 수요일

Embedded Debian Project 에서 제공하는 유용한 개발 도구 설치하기

Emdebian에서 제공하는 패키지는 다음과 같은 것들이 있다. 현재 시냅틱 패키지에서 검색되는 내용들이다.

emdebian-crush
emdebian-archive-keyring
emdebian-grip
emdebian-grip-server
libdebian-packages-compare
multistrap
emdebian-tdeb

* toolchain
설치하기 위해서 source.list에 emdebian.org를 추가하거나 /etc/apt/source.list.d/밑에 emdebain.list 파일을 다음의 내용을 갖도록 생성해야한다.

deb http://www.emdebian.org/debian testing main

#deb http://www.emdebian.org/debian unstable main
#deb http://www.emdebian.org/debian squeeze main

현재 나의 시스템은 wheezy이기 때문에 위와 같이 설정한다.
나중에 squeeze가 아니어서 발생하는 문제점이 있기 때문에 좀 귀찮은 것이 있다.


그리고 패키지 정보를 갱신한다.

# apt-get update

gpg 어쩌구 저쩌구 하면서 에러를 내뱄는다. 그레서 keying에 해당하는 것을 설치해 보았다.

# apt-get install emdebian-archive-keyring

그리고 다시 패키지 정보를 갱신해 보았다. 된다.

그럼 armel에 해당하는 architecture관련 사항들을 패키지 캐시에서 검색해보자.

# apt-cache search armel


asterisk-prompt-fr-armelle - French voice prompts for Asterisk by Armelle Desjardins
debian-installer-6.0-netboot-armel - Debian-installer network boot images for armel
installation-guide-armel - Debian installation guide for armel
icedtea-6-jre-cacao - Alternative JVM for OpenJDK, using Cacao
icedtea-6-jre-jamvm - Alternative JVM for OpenJDK, using JamVM
icedtea-7-jre-jamvm - Alternative JVM for OpenJDK, using JamVM
cpp-4.3-arm-linux-gnueabi - The GNU C preprocessor
cpp-4.4-arm-linux-gnueabi - The GNU C preprocessor
g++-4.3-arm-linux-gnueabi - The GNU C++ compiler
g++-4.4-arm-linux-gnueabi - The GNU C++ compiler
gcc-4.3-arm-linux-gnueabi - The GNU C compiler
gcc-4.4-arm-linux-gnueabi - The GNU C compiler
gcc-4.4-base-armel-cross - The GNU Compiler Collection (base package) (for cross-compiling)
libc-bin-armel-cross - Embedded GNU C Library: Binaries (for cross-compiling)
libc-dev-bin-armel-cross - Embedded GNU C Library: Development binaries (for cross-compiling)
libc6-armel-cross - Embedded GNU C Library: Shared libraries (for cross-compiling)
libc6-dev-armel-cross - Embedded GNU C Library: Development Libraries and Header Files (for cross-compiling)
libgcc1-armel-cross - GCC support library (for cross-compiling)
libgcc1-dbg-armel-cross - GCC support library (debug symbols)
libgfortran3-armel-cross - Runtime library for GNU Fortran applications
libgfortran3-dbg-armel-cross - Runtime library for GNU Fortran applications (debug symbols)
libgmp3-dev-armel-cross - Multiprecision arithmetic library developers tools (for cross-compiling)
libgmp3c2-armel-cross - Multiprecision arithmetic library (for cross-compiling)
libgmpxx4ldbl-armel-cross - Multiprecision arithmetic library (C++ bindings) (for cross-compiling)
libgomp1-armel-cross - GCC OpenMP (GOMP) support library
libgomp1-dbg-armel-cross - GCC OpenMP (GOMP) support library (debug symbols)
libmpfr-dev-armel-cross - multiple precision floating-point computation developers tools (for cross-compiling)
libmpfr4-armel-cross - multiple precision floating-point computation (for cross-compiling)
libmudflap0-4.4-dev-armel-cross - GCC mudflap support libraries (development files)
libmudflap0-armel-cross - GCC mudflap shared support libraries
libmudflap0-dbg-armel-cross - GCC mudflap shared support libraries (debug symbols)
libobjc2-armel-cross - Runtime library for GNU Objective-C applications
libobjc2-dbg-armel-cross - Runtime library for GNU Objective-C applications (debug symbols)
libstdc++6-4.3-dbg-armel-cross - The GNU Standard C++ Library v3 (debugging files)
libstdc++6-4.3-dev-armel-cross - The GNU Standard C++ Library v3 (development files)
libstdc++6-4.3-pic-armel-cross - The GNU Standard C++ Library v3 (shared library subset kit)
libstdc++6-4.4-dbg-armel-cross - The GNU Standard C++ Library v3 (debugging files)
libstdc++6-4.4-dev-armel-cross - The GNU Standard C++ Library v3 (development files)
libstdc++6-4.4-pic-armel-cross - The GNU Standard C++ Library v3 (shared library subset kit)
libstdc++6-armel-cross - The GNU Standard C++ Library v3 (for cross-compiling)
linux-libc-dev-armel-cross - Linux support headers for userspace development (for cross-compiling)
tzdata-armel-cross - time zone and daylight-saving time data (for cross-compiling)
zlib1g-armel-cross - compression library - runtime (for cross-compiling)
zlib1g-dev-armel-cross - compression library - development (for cross-compiling)

좀 많다. 다 파악하지는 못하겠지만 컴파일러, 라이브러리 등이라고 파악된다. 그 중 눈에 띄는 것이 있는데 다음 패키지이다.

"installation-guide-armel - Debian installation guide for armel"

설치하는데 필요한 도움글이 되겠다. 우선 설치해서 살펴보자.

# apt-get install installation-guide-armel

설치되고 실행하거나 읽어볼 내용에 대한 아무런 연관고리가 없어서 설치된 파일을 찾아 보았다.

"/var/lib/doc-base/documents/installation-guide-armel-en"에 있었다.

Document: installation-guide-armel-en
Section: Debian/Installation
Title: Debian Installation Guide for ARM in English
Author: Debian Installer team
Abstract: Manual describing how to install a Debian system
 using the Debian Installer.

Format: HTML
Index: /usr/share/doc/installation-guide-armel/en/index.html
Files: /usr/share/doc/installation-guide-armel/en/*.html

Format: pdf
Files: /usr/share/doc/installation-guide-armel/en/install.en.pdf.gz

Format: text
Files: /usr/share/doc/installation-guide-armel/en/install.en.txt.gz

그럼 해당 파일을 참고해서 살펴 보았다. 해당 내용은 그냥 데비안 설치 도움글이다. 일반적인 도움글로 데이안이 무엇인가?에서 시작해서 CD에서 설치하는 법 서버 설정법 등이다. 지우자.

# apt-get remove installation-guide-armel

그럼 다시 되돌아 가서 다음 링크의 내용들을 충실히 따라해서 toolchain과 라이브러리를 설치하자.


우선 설치해야 하는 파일은 g++이다.

# apt-get install g++-4.4-arm-linux-gnueabi

위와 같이 하면 의존성 문제가 발생한다.

libgmp3c2패키지가 없다고 생기는 문제점인것 같다.

emdebian에서 추천하는 debian 버전은 squeeze인데

내 것이 wheezy여서 생기는 문제 인것 같다.

그래서 수동으로 설치해 주어야 한다.

시스템은 i386머신이기 때문에 다음 파일을 다운 받았다.

http://packages.debian.org/squeeze/i386/libgmp3c2/download

다른 머신은 다음 사이트에서 해당 머신에 해당하는 파일 다운 받아야 한다.

http://packages.debian.org/squeeze/libgmp3c2

그리고 설치는 다음과 같이 한다.

# dpkg -i libgmp3c2_4.3.2+dfsg-1_????.deb

그리고 나서 다시 설치하면 정상적으로 설치된다.

# apt-get install g++-4.4-arm-linux-gnueabi

설치된 파일은 /usr/bin/arm-linux-gnueabi-gcc에 존재하게 된다.

그럼 버전을 확인해 보자.

/usr/bin# arm-linux-gnueabi-gcc -v


Using built-in specs.
Target: arm-linux-gnueabi
Configured with: ../src/configure -v --with-pkgversion='Debian 4.4.5-8' --with-bugurl=file:///usr/share/doc/gcc-4.4/README.Bugs --enable-languages=c,c++,fortran,objc,obj-c++ --prefix=/usr --program-suffix=-4.4 --enable-shared --enable-multiarch --enable-linker-build-id --with-system-zlib --libexecdir=/usr/lib --without-included-gettext --enable-threads=posix --with-gxx-include-dir=/usr/arm-linux-gnueabi/include/c++/4.4.5 --libdir=/usr/lib --enable-nls --enable-clocale=gnu --enable-libstdcxx-debug --enable-objc-gc --disable-sjlj-exceptions --enable-checking=release --program-prefix=arm-linux-gnueabi- --includedir=/usr/arm-linux-gnueabi/include --build=i486-linux-gnu --host=i486-linux-gnu --target=arm-linux-gnueabi --with-headers=/usr/arm-linux-gnueabi/include --with-libs=/usr/arm-linux-gnueabi/lib
Thread model: posix
gcc version 4.4.5 (Debian 4.4.5-8)

위와 같다.

그럼 다음으로 넘어 가자.

다시 한번 기억할 것이 작업하는 시스템의 debian 버전은 wheezy이다.

다른 버전은 위에 경로로 가서 해당 시스템에 따라 조금씩 변경해야 할 것들이 있다.

다음에 설치할 것들은 arm-linux-gnueabi-gcc에 필요한 cross 라이브러리를 설치하기 위한

xapt를 설치해야 한다.

# apt-get install xapt

그리고 다음의 패키지들을 설치하자.

# xapt -a armel -m libfoo-dev


그럼 cross 시스템의 gdb를 설치하자.

# apt-get install gdb-arm-linux-gnueabi binutils-arm-linux-gnueabi

휴우 위의 두게 는 아직 패키지 없음으로 나온다.

라이브러리와 gdb는 나중에 다시 해보아야 겠다.

댓글 없음:

댓글 쓰기