크로스 컴파일러의 개요
크로스 컴파일러 설치 방법
ToolChain 압축 파일 구하기
ARM CPU를 위한 크로스 컴파일러 설치하기
MIPS core를 위한 크로스 컴파일러 설치하기

크로스 컴파일러의 개요

일반적으로 컴파일러는 자신의 실행되고 있는 시스템에서 실행되는 바이너리코드를 만듭니다. 예를 들어 x86의 시스템에서 gcc를 사용하여 컴파일하면 x86에서 실행되는 실행 바이너리 파일이 생성됩니다. 이렇게 자신이 실행되고 있는 시스템에 실행할 수 있는 실행 파일을 만드는 컴파일러를 네이티브 컴파일러라고 합니다.

역시 임베디드 리눅스가 설치된 장치에서 실행되는 프로그램을 만들기 위해서는 임베디드 리눅스용 네이티브 컴파일러가 필요합니다. 그러나 임베디스 시스템은 열악한 환경을 위해 만들어진 시스템이기 때문에 프로젝트 소스를 에디트하면서 네이티브 컴파일러를 운영하기 위한 리소스가 매우 부족한 경우가 많습니다.

그러므로 임베디드 보드에서 직접 프로그램을 작성하기 보다는 개발 작업이 용이한 일반 PC를 개발용 호스트로 운영하면서 프로그램 소스 작성 뿐만 아니라 임베디드 리눅스 보드. 즉, 타겟 보드에서 실행되는 실행파일을 만들어 주는 컴파일러를 사용하여 프로그램을 생성합니다.

이렇게 자신이 실행되고 있는 환경과는 전혀 다른 환경에서 실행되는 프로그램을 만들어 주는 컴파일러는 크로스 컴파일러라고 합니다. 또한 크로스 컴파일러는 타겟보드의 CPU에 따라서 다양한 컴파일러가 있습니다.

크로스 컴파일 환경에 포함되는 내용은 아래와 같습니다.

  • 어셈블러 및 로더 기타 툴
    binutils
  • 컴파일러
    gcc
  • 크로스 컴파일 구축을 위한 라이브러리 및 일반 라이브러리
  • glibc

크로스 컴파일러 설치 방법

개발 호스트에 크로스 컴파일러를 설치하기 위해서는 크로스 컴파일러 소스를 구해서 직접 컴파일하여 설치해야 하기 때문에 쉽지 않습니다. 이에 저희 (주)FALINUX는 용이하게 설치할 수 있도록 Tool Chain 압축 파일을 제공하고 있으며, 이 압축 파일을 풀기만 하면 설치가 완료됩니다.

크로스 컴파일러를 아래의 순서에 따라 설치하십시오.

  1. Tool Chain 압축 파일을 구한다.
  2. root 권한으로 루트 디렉토리(/)에 압축 풀기를 한다.
  3. 컴파일러가 제대로 설치되었는지 확인하다.

ToolChain 압축 파일 구하기

구매하신 제품 중에 동봉된 CD에서 Tool Chain 파일을 구하실 수 있습니다.

EZ 보드 Tool Chain 압축 파일
EZ-PXA270 cross_compiler/arm-toolchain-3.4.3.tar.gz
EZ-AU1200 cross_compiler/mipsel-toolchain-3.4.4.tar.gz
EZ-S3C2440 cross_compiler/arm-toolchain-3.4.3.tar.gz
ESP-MMI

cross_compiler/arm-toolchain-3.4.3.tar.gz

EZ-X5

cross_compiler/rpm-wow7.1
cross_compiler/rpm-wow7.3
cross_compiler/rpm-wow8.0
cross_compiler/src

또는 FALINUX 포럼 자료실>>ToolChain 페이지에서 내려 받으실 수 있습니다.

또한 FALINUX 포럼 자료실에는 EZ 보드별로 따로 페이지를 구성해 놓았습니다. 구매하신 EZ 보드의 모델 이름에 해당하는 링크를 클릭하시면 "ToolChain & Ram disk" 리크가 있습니다. 이 링크를 이용하셔도 ToolChain 을 구하실 수 있습니다.

주의 제공되는 Tool Chain 파일은 리눅스의 버전업에 따라 제작 환경이 변경됩니다.

ARM CPU를 위한 크로스 컴파일러 설치하기

EZ-X5, EZ-S3C2440, 설치 방법은 CD에서 복사한 Tool Chain 압축 파일을 root 권한으로 루트(/)에서 압축을 풀기만 하면 설치가 완료됩니다.

주의 사항
  • 반드시 root 권한으로 설치하십시오.
  • 반드시 루트 디렉토리(/)에서 압축을 풀기를 하십시오.

본 설명에서는 제품과 동봉된 CD의 Tool Chain 압축 파일을 이용하여 크로스 컴파일러를 설치하도록 하겠습니다.

]$ su -            // 반드시 root 권한으로 작업합니다.
암호:
]# cd /            // 반드시 루트 디렉토리로 이동합니다.


]# mount /dev/dcdrom /mnt/cdrom
mount: block device /dev/cdrom is write-protected, mounting read-only
]# tar zxvf /mnt/cdrom/cross_compiler/arm-toolchain-3.4.3.tar.gz

     리눅스 설치 본에 따라 /mnt/cdrom이 없는 경우가 있습니다.
     CentOS 같은 경우 /mnt/cdrom 대신에 /media 가 사용됩니다.
     그러므로 /media로 마운트합니다.

]# mount /dev/dcdrom /media
mount: block device /dev/cdrom is write-protected, mounting read-only
]#tar zxvf /media/cross_compiler/arm-toolchain-3.4.3.tar.gz

ARM 용 크로스 컴파일러는 arm-linux-gcc 입니다. 컴파일러가 옳바르게 설치되었는지 확인하기 위해 아래와 같이 컴파일러의 버전 번호를 확인해 봅니다.

]# arm-linux-gcc --version
arm-linux-gcc (GCC) 3.4.3
Copyright (C) 2004 Free Software Foundation, Inc.
This is free software; see the source for copying conditions.  There is NO
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
]#

이와 같이 컴파이러 버전 정보가 출력되었다면 정상적으로 설치된 것입니다.

MIPS core를 위한 크로스 컴파일러 설치하기

설치 방법은 CD에서 복사한 Tool Chain 압축 파일을 root 권한으로 루트(/)에서 압축을 풀기만 하면 설치가 완료됩니다.

주의 사항
  • 반드시 root 권한으로 설치하십시오.
  • 반드시 루트 디렉토리(/)에서 압축을 풀기를 하십시오.

본 설명에서는 제품과 동봉된 CD의 Tool Chain 압축 파일을 이용하여 크로스 컴파일러를 설치하도록 하겠습니다.

]$ su -            // 반드시 root 권한으로 작업합니다.
암호:
]# cd /            // 반드시 루트 디렉토리로 이동합니다.


]# mount /dev/dcdrom /mnt/cdrom
mount: block device /dev/cdrom is write-protected, mounting read-only
]# tar zxvf /mnt/cdrom/cross_compiler/mipsel-toolchain-3.4.4.tar.gz

     리눅스 설치 본에 따라 /mnt/cdrom이 없는 경우가 있습니다.
     CentOS 같은 경우 /mnt/cdrom 대신에 /media 가 사용됩니다.
     그러므로 /media로 마운트합니다.

]# mount /dev/dcdrom /media
mount: block device /dev/cdrom is write-protected, mounting read-only
]#tar zxvf /media/cross_compiler/mipsel-toolchain-3.4.4.tar.gz

컴파일러가 옳바르게 설치되었는지 확인하기 위해 아래와 같이 컴파일러의 버전 번호를 확인해 봅니다.

]# mipsel-linux-gcc --version
mipsel-linux-gcc (GCC) 3.4.4
Copyright (C) 2004 Free Software Foundation, Inc.
This is free software; see the source for copying conditions.  There is NO
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
]#

이와 같이 컴파이러 버전 정보가 출력되었다면 정상적으로 설치된 것입니다.