어제까지 힘들게 윈도우로 DNW 연결한 후에 바로 임베디드 리눅스 개발을 위한 환경 구축에 들어가기로 했다. 일단 내가 사용중인 VMWare 에 Ubuntu를 설치하였다. 우분투 선택의 가장 큰 이유는 리눅스답지 않은 예쁜 인터페이스?
2. Toolchain 만들기
Toolchain이란 개발에 필요한 여러가지 컴포넌트의 묶음을 뜻한다. 결국 Toolchain 이란 임베디드 프로그래밍을 위한 통합환경을 의미한다고 생각하면 간단한 의미이다.
- gcc : GNU C Compiler 선행처리, 컴파일, 어셈블리, 링커의 전 처리기
- as : GNU assembler 어셈블러 언어를 목적 코드로 변경
- ld : GNU linker 목적 파일 결합, 참조 해결, 심볼 위치 변경
- binutils : GNU에서 만든 각종 기본 유틸리티
- ar : 목적 파일 어카이빙 (라이브러리 생성)
- nm : 심볼 이름 따내기
- ranlib : 어카이빙 색인 생성
- size : text, data, bss 크기 확인
- strip : 심볼제거 (어플의 크기를 현저히 줄일 수 있음)
- ar : 목적 파일 어카이빙 (라이브러리 생성)
- make : 파일 의존성을 시간에 따라 검사, 필요한 목적파일만 생성하는 빌드
- Makefile : make 프로그램이 프로그램을 빌드하기 위해 사용하는 입력파일
- gdb : GNU debugger 강력한 디버깅 도구
각 컴포넌트들은 제목을 클릭하면 최신버젼으로 다운 받을 수 있다. (귀찮아서 binutils만-_-) 물론 각 프로세서마다 또 개발 환경에 따라서 버젼이 달라질 수 있는데 그 때는 GNU사이트에 직접 들어가서 찾아서 받으면 된다.
물론 귀찮을 땐, 공식 ARM 리눅스 배포판 : cross-3.2.tar.bz2, cross-3.0.tar.bz2 , cross-2.95.3.tar.bz2
개인적으로 한방에 해결하는 것을 좋아하니깐 cross-3.2.tar.bz2 를 바로 다운받아서 설치하도록 하겠다.
후에 알게 된 사실이지만 엄청나게 많은 Toolchain 들이 있고 각 컴파일러에 따라서 되었다가 안되었다가 하는 사태들이 발생하였다. 간단하게 U-boot을 컴파일하기 위해서도 정말 많은 실패를 겪었다. T-T 결국 마지막으로 선택하게 된 것은 Das U-boot과 함께 Denx사이트에 올라와 있는 ELDK 이다.
ps. EABI 툴체인도 성공적으로 컴파일 되었다.
ps2. 툴체인 패키지 유행(?)을 쫓아가기 위해서라도 포럼에서 좀 이야기하고 정보를 꾸준히 얻어야할 필요성이 있는 것 같다. (http://kelp.or.kr)
arm-linux-gcc -v 을 입력 후 gcc version 3.2 라는 화면을 볼 수 있으면 크로스-툴체인을 성공적으로 설치한 것이다.
3. 네트워크 환경 설치
- xinetd : xinetd가 관리중인 포트로 접근이 들어오면 규칙에 따라 특정 서버 프로세스로 전송
- tftpd : 이더넷을 이용한 파일 송수신 프로토콜(udp이용)
- minicom : 시리얼 포트를 통한 개발을 위한 프로그램
- build-essential : 종속관계 패키지 : g++, g++4.2, libstdc++6-4.2-dev
4. tftp 설정
그리고 마지막으로 minicom 을 설정하면 된다. minicom 설정은 다음의 PDF파일을 참고하면 될 것이다.
주변에 사람들이 임베디드 리눅스 관련자료는 많다고 해서 공부하기 쉬울거라고 했지만... 자료는 많지만 정리되지 않고 이해되지 않은 상태에선 역시나 뭐든지 어렵다. 또한 임베디드 관련자료는 말 그대로 프로세서마다 리눅스 커널마다 다 조금씩 다르다.
기본은 같겠지만 기본으로 공부하기 위해서 시작하는 나와 같은 사람들에겐 완전 힘든 일이다. 적어도 이 글이 SMDK2410보드로 공부하는 사람들에게는 조금만이라도 도움이 되길 바란다.
ps. 막상 설치 다 해놨는데... 정작 Serial 포트가 없어서 DNW 통해서 U-Boot를 올려서 사용해야 할 듯하다. 어째튼 정말 고생했다. 동근-_-;










