본문 바로가기

Embedded Linux

툴체인 빌드해보기 (crosstool-NG 사용)

리눅스에서 다음과 같은 명령어를 차례로 입력한다. (설명은 주석에 포함)

 

# 필수 패키지들 설치

$ sudo apt-get install automake bison chrpath flex g++ git gperf gawk libexpat1-dev libncurses5-dev libsdl1.2-dev libtool python2.7-dev texinfo help2man libtool-bin

 

# git 을 이용하여 crostool-ng clone 해오기

$ git clone https://github.com/crosstool-ng/crosstool-ng.git 

$ cd crosstool-ng

$ git checkout crosstool-ng-1.24.0 // 버전에 따라 빌드가 되지 않을 수도 있으므로 빌드가 되지 않는다면 버전을 바꿔가며 시도해보자... 

$ ./bootstrap

$ ./configure --enable-local

$ make

$ make install

 

설치후 ct-ng 라는 실행파일을 볼 수 있다.

 

다음 명령어로 내 타깃의 디폴트 구성을 확인해주고...

 

# arm cortex a8 계열의 디폴트 구성 확인하기

$ ./ct-ng show-arm-cortex_a8-linux-gnueabi

몇가지 툴체일 설정을 해준다

# 타깃 선택
$./ct-ng arm-cortex_a8-linux-gnueabi

# 툴체인 설정

$./ct-ng menuconfig

툴체인 설정 커맨드를 입력하면 아래화면이 뜬다

여기서 해줘야 할 것은..

1. Paths and misc option -> Render the toolchain read-only 끄기

2. Target options -> floating point -> hardware FPU 선택

 

2번 설정은 부동소수점 레지스터를 쓴다는 설정인데 hardware FPU 를 쓰면 float, double 인자형 함수 호출이 빨라진다고 한다.

 

설정후 저장하고 나온뒤 

 

# 빌드 명령
$ ./ct-ng build

나같은 경우는 1시간 좀 덜걸렸던 것 같다.

 

빌드가 완료되면 home 폴더에 x-tools 라는 폴더가 생기고 내부에는 크로스 컴파일러들이 만들어져 있다. 바로 아래 처럼..

 

 

위 빌드는 게시 시간 기준으로 하였으며, tool 의 버전이 올라갈수록 빌드가 안될 수도 있으니 git checkout 으로 버전을 바꿔가면서 시도해보도록 하자

'Embedded Linux' 카테고리의 다른 글

부트로더의 간단한 개념 및 U-Boot 빌드해보기  (0) 2019.09.10