반응형

아주오래전

jin's lab에 남긴거네요 ~_~
잊혀질까봐 무서워서 빼옵니다..

======================================================================================================================

자!!! 이제 AVR-GCC를 설치 해봅시다!!! (두둥)

처음에 인터버드 홈페이지에 AVR-GCC설치법을 보고 시작했습니다..
글이 순서가 약간 이상해서 혼자 어젯 밤 상당히 삽질을 했드랩니다..
결국은 성공을 했지만....

물론 윈도우에선 AVR-EDIT라는 강력한 툴이 있긴 하지만..
저같은 사용자는 때로는 리눅스 켜놓고 남에게 방해 받지 않고 코딩을 할 수 있어서 좋습니다...(이상하게 리눅 켜놓고 있으면 아무도 터치를 안하는 분위기가 +_ +)

자~ 이제 본격적으로 설치법을 기술 하기 전에 준비물~~~
1. OS Linux 여야겠죠?
(저는 GNU/Linux Debian Linux사용자라 데비안 3.0 우디 배포본에 필요한 개발 헤더라던지 패키지들을 설치 해서 사용합니다.)

2. 기본적인 개발툴들이 설치 되어있어야 합니다....gcc나 Glibc등등..
(Redhat 사용자께서는 gcc버전이 낮으네 어쩌네 하면 http://rpmfind.net에서 의존성 있는 패키지들 검색하셔서 설치해 주세요...
Debian 사용자라면 apt-get upgrade update한방이면 왠간한건 다 되겠죠?)

3. 땜질과 마찬가지로 리눅스 프로그램 소스컴파일도 상당한 인내와 고뇌 그리고 삽질이 필요합니다(물론 고수분들 제외). Jin님의 말씀을 빌리자면 집에 놔두고 온 떡 생각하면 안되옵나이다 (_ _

[[ 설치에 앞서 필요한 패키지들 ]]
tar, gzip, gunzip : 이건 배포본에 대부분 깔려 있습니다. 파일 묶음/압축 유틸
gcc : 제가 2.95를 사용하는데 괜찮더군요.....
glibc : gcc에 의존관계는 크게 없지만 이거 없으면 일반 C 소스도 컴파일안됩니다...
shell : 음 대부분 bash를 사용하실껍니다...bash를 적극 추천합니다...
make : 없으면 리눅스가 아닐지도...


[[ 설치에 필요한 계정 ]]
root 계정으로 프로그램을 설치 합니다....
그래야 나머지 계정에 ftp로 올려버린 압축 이미지도 풀어 헤칠수 있으니까요... <-- 농담반 진담반
.........원래 프로그램 설치는 root에서 하는 거심.........


[[ 설치에 필요한 소스를 받아봅시다 ]]
힘들게 찾았습니다...
http://multi.ks.ac.kr/~reserve/avr-gcc
필요한것이 binutils와 gcc-core, avr-libc입니다...

binutils-2.14.tar.bz2  
gcc-core-3.3.tar.gz  
avr-libc_20030512cvs-1.tar.gz
를 받으세요

binutil만 왜 tar.gz의 확장자가 아니라 tar.bz2의 확장자냐라고 생각하시는 분은...ftp://ftp.informatik.rwth-aachen.de/pub/gnu/binutils/ 가셔서 tar.gz로 된 걸 받으시면 됩니다 ^-^ 그냥 혹시나 하는 마음에 원래 인터보드 강좌의 파일로 쓴거죠...

이전 버전은 tar.gz로 깔았었는데 잘되었습니다...


[[ 본격적인 설치에 앞서 ]]
리눅스에선 configure  - > make - > make install 의 과정으로 소스 컴파일을 합니다..
configure로 설치할 환경을 세팅하구요(데뱐이면 데뱐, 수세면 수세, 레뎃이면 레뎃, 젠투면 젠투...등등)
make로 실제 바이너리 이미지를 현 디렉토리에 맹글어 둔후..
make install을 하면 해당 설치 경로로 파일을 옮기게 됩니다....
make한 데이터를 싸그리 지우고 싶다...라면 make clean하시면 됩니다....만...그냥 사용한 디렉토리는 rm -rf 디렉토리명 으로 삭제 하시면 되기 때문에 그럴 필요가 거의 없을껍니다...

[[ 설치 과정 ]]

gcc가 설치되어있으므로 그것과 구분 지을수 있도록 /usr/local/atmel이란 디렉토리를 생성하여 거기에 avr-gcc를 설치하도록합니다..

$> mkdir /usr/local/atmel

/usr/local/atmel이라는 디렉토리를 맹글었으면

(1)
어셈블러나 링커등이 있는 binutil을 설치 합니다...
(주 : avr-gcc말고 ARM(XScale)용 gcc또한 binutil 을 사용합니다....이와 유사한 방식으로 설치를 하지요..)

$>  bunzip2 -c binutils-2.14.tar.bz2 | tar xvf -
(주 : tar.gz파일이라면 $> tar xvfz binutils-2.14.tar.gz 로 압축을 해제 한다)
$>  cd binutils-2.14
$>  ./configure --target=avr --prefix=/usr/local/atmel
$>  make
$>  make install  

이렇게 설치가 되었으면 avr-gcc(cc이지만 이녀석은 크로스 컴파일러이죠..)의 라이브러리가 어디에 있는지 정의해 주어야 하는데요..

$> vi /etc/ld.so.conf

로 파일을 여신 후 에디터를 insert 모드로 전환(키보드 i키) 후 원래 있는 라이브러리 패스 밑에 /usr/local/atmel/lib 라인을 추가 시킵니다..
그리고 esc키 를 누르면 insert모드에서 해제되는데요 여기서 :wq (파일에 쓰고 종료)를 눌러 파일에 쓰고 종료를 합니다

*.conf파일은 config파일입니다...바뀐 데이터를 반영하기 위해선

$> /sbin/ldconfig

명령을 수행 하게 되면 됩니다...

but, 여기서 저 명령이 안듣는 모양이더군요..제 리눅스가 문제인건지...커널버전이 너무 많이 올라와 버려서 인건지....
대안입니다...
실행을 시켜보고...리붓해주시길...(꼭입니다..)

리붓 후 다시 root로 로긴합니다

(2)
avr-gcc를 설치 합니다...
gcc-core만 깔면 되더군요..+_ +)

인터보드랑 약간 차이나는 게 여기서 부터라 볼수 있군요..

$>  tar zxvf gcc-core-3.3.tar.gz
$>  cd gcc-3.3
$>  ./configure --target=avr --prefix=/usr/local/atmel --disable-nls --enable-language=c

위와 같이 gcc-core를 configure한 다음 make, make install전에

$>  export CC=avr-gcc  
$>  export AS=avr-as
$>  export AR=avr-ar
$>  export RANLIB=avr-ranlib
$>  export PATH=/usr/local/atmel/bin:${PATH}

위와 같이 환경 변수를 등록합니다...

그 다음

$>  make
$>  make install

로 마무리!!


(3)
여기까지 아무문제 없이 잘 왔다면..대략 성공이 눈앞에 보이는 것입니다.... 나머지는 이제 avr-gcc가 사용할 avr 헤더파일과 라이브러리 파일을 등록시켜주는(파일을 생성후 /usr/local/atmel/ 디렉토리 하부에 집어 넣는) 작업만 남았습니다..

그 것이 avr-libc이죠....
(주: 역시 ARM용 또한 이렇게 존재하는 것이지요 [_ _]*)

$>  tar xvfz  avr-libc_20030512cvs-1.tar.gz
$>  cd avr-libc-200030512cvs
$>  ./configure --prefix=/usr/local/atmel --target=avr --enable-languages=c --host=avr
$>  make
$>  make install

하면 이제 avr-gcc가 동작할 것입니다...ㅠ_-
고난과 역경을 ㅠ_ㅠ 격게 되실 것이므로;;
avr-gcc의 패스가 재로긴 후 사라지기 때문이죠..

Tip하나를....

로그인 후 자신의 홈 디렉토리가
/home/자신의 아이디 일껍니다..
거기에서

$>  vi .bash_profile

을 하시면 Bash쉘의 개인 프로필이 뜨게 되는데요..

export CC=avr-gcc  
export AS=avr-as
export AR=avr-ar
export RANLIB=avr-ranlib
export PATH=/usr/local/atmel/bin:${PATH}

제일 밑에 써 넣으시고 난 뒤 저장 후 종료 하신후

$>  source .bash_profile

하시면....

avr-gcc가 그 사용자에게는 실행이 될 것입니다...^-^ 물론 path에 추가해줘도 괜찮지만...

역시 unix, linux라는 운영체제는...특별 권한에 특별한 아이디를 사용하는 매력이 +_ +)/





인터버드에 있는 AVR-GCC 설치 사용법..
http://www.interboard.co.kr/devel/avr/avr_install.html


======================================================================================================================
avr-libc-1.0.3.tar.tar 가 업데이트 되었습니다 .tar.tar는 .tar.bz입니다... 압축 푸시는건 bunzip2 -c 파일명 | tar xvf - 입니다... atmega32 됩니다 두둥~~~


http://www.avrfreaks.net/AVRGCC/index.php
http://www.lancos.com/ppwin95.html
반응형

'Tip & Tech > Linux | Unix' 카테고리의 다른 글

PHP 확장모듈 만들기  (0) 2010.10.21
shell scripting - date 사용하기  (0) 2010.10.21
Solaris 에서의 pkgadd 사용 예  (0) 2010.10.21
MySQL 리플리케이션 로그 핸들링  (0) 2010.10.20
php full compile options  (0) 2010.10.20

+ Recent posts