2007년 10월 22일
임베디드 리눅스 - 환경 구축하기
출처 : http://blog.naver.com/meelong0/140024246860
현재 여기서 만들어지는 리눅스 관련 카테고리는 총 2가지 용도로 쓰입니다.
하나는 충북대학교 컴퓨터공학 임베디드 과정을 배울 학생들을 위한 것이고,
다른 하나는 인터넷 실험을 통해 Linux Server를 구축 하는데 도움이 되고자 함입니다.
필자가 워낙에 많은 에러에 수업시간에 구현을 못한 점이 많아서 따로 가져와서
별도로 설치 및 과정을 보이는 것이니 후에 잘 모르면 참고하시기 바랍니다.
그럼 본론으로 들어가서,
아 참고로 이전 리눅스 자료부터 봐오신분은 알것 같지만,
녹색은 파일명
빨간색은 실제 터미널에서 실행하는 명령
파란색은 디렉토리명 같은 그 외의 것을 나타냅니다.
작업에 사용될 보드는 Huins 보드입니다.
꽤나 호화로운 보드입니다. 대략 거의 모든 모듈이 다 붙어 있어서 가져다가 불러 쓰면 거의 다 구현이 가능한 학습용 보드랍니다.
첫 시간으로서 간단히 환경 구현을 해보도록 하죠.
환경을 구축한다는건 지금 작업할 이 Host PC를 효율적으로 잘 쓰기 위해서
폴더를 가지런하게 잘 만든다던지 Target board를 위한 크로스 컴파일러 설치라든지
초기 연결을 하기 위한 JTAG 설치 등을 들 수 있겠네요.
여기서 Host PC는 리눅스가 설치된 지금 이 컴퓨터를 말하는 것이고,
Target board란 것은 우리가 실험에 쓸 Kit를 지칭하는 겁니다.
우선 작업하기 좋게 폴더부터 예쁘게 만들어보죠.
폴더는 다음 프로젝트에서도 쉽게 또 재사용하기 위해서 쉘파일로 구현합니다.
쉘파일 한번 잘 만들어 놓으면 나중에 두번 세번 작업 할때의 번거로움이 줄어 들죠.
우선 폴더 만드는 쉘 파일부터 만들어 봅시다.
----------------------------------------------------------------------
mkdir bootldr
mkdir build-tools
mkdir debug
mkdir doc
mkdir images
mkdir kernel
mkdir project
mkdir rootfs
mkdir sysapps
mkdir tmp
mkdir tools
----------------------------------------------------------------------
여러 폴더들이 만들어 집니다. 일일이 다 설명하면 빡세지만...
일단 여기서는 kernel에는 Huins용 리눅스 커널 만드는게 들어가고,
bootldr에는 부트로더를 만들어주기 위한 폴더 tools는 여기서 사용할 프로그램들
images는 커널이나 부트로더나 램디스크 등의 이미지 파일을 올릴 폴더...
뭐 이런식입니다.
대규모의 프로젝트 진행시 프로젝트 이름만 이런 폴더의 상위 폴더로 이름을 바꿔주고
이렇게 여기 폴더들을 만들어서 사용하면 차후에 편리하니깐 이렇게 mkdir.sh 처럼
[cat > mkdir.sh] 또는 [vi mkdir.sh] 같은 명령을 통해서 만들어 주는 겁니다.
그냥 Text 에디트 하듯이 만들어 주는 겁니다.
대신에 차후에 실행이 가능하도록 권한 설정을 해 줘야 합니다.
[chmod 777 mkdir.sh] 이렇게 권한 바꿔주면 되는 것이죠.
실행은 [source mkdir.sh] 요렇게 우리가 만든 쉘 파일이 실행되어 집니다.
다음으로 만들 것이 환경변수 파일입니다.
환경변수가 뭐야? 뭔 뜻이야? 라고 생각이 들 수 있겠으나....
용도를 위해 설명하자면 쉽게 사용하려고 만든다는 겁니다.
제가 현재 사용할 폴더는
/home/embed/project/arm/huins 라는 디렉토리에 있습니다.
그래서 뭔가 실행해줄때 이걸 일일이 언제 다 쳐주고 실행 할 수 없지 않겠습니까?
게다가 실험 대부분이 command 창 모드 같은 Text 명령 모드인데... 짜증나겠죠?
그래서 정의를 내려주는 겁니다. export 명령을 사용하면 앞에 지정 언어를 마치
뒤에 쓴 것처럼 바꿔서 쓰는 효과가 나타나는 겁니다.
그래서 작업을 위해 제가 만든 env_arm_huins.sh 파일은 이렇습니다.
----------------------------------------------------------------------
export PROJECT=huins
export PROJROOT=/home/embed/project/arm/${PROJECT}
export TARGET=arm-linux
export PREFIX=${PROJROOT}/tools
export TARGET_PREFIX=${PREFIX}/${TARGET}
export PATH=/usr/local/arm-linux/bin:${PATH}
export KERNEL=${PROJROOT}/kernel
export JFLASH=${PROJROOT}/tools/jtag/jtag
export QTDIR=${PREFIX}/qtx-2.3.2
export LD_LIBRARY_PATH=${QTDIR}/lib:${LD_LIBRARY_PAHT}
cd ${PROJROOT}
----------------------------------------------------------------------
vi 편집기에서 보면 아름답게 나온다!
자 보시면 아실테지만, 거짓말 안 했죠?
export 쓰고 정의해줄 이름 쓰고 실제로 존재하거나 이전에 정의된 이름 써주면 됩니다.
원래는 이것도 그냥 한줄 한줄 차레대로 써주면 되지만, 리눅스 새로 들어올때마다,
터미널 새로 열어줄 때마다 다 쳐줄려면 손가락이 남아나질 않겠지요?
그래서 이렇게 미리 만드는겁니다.
오타 있을지도 모르는데...... 어쨌든 저렇게 하면 됩니다.
그래서 [CD ${PROJROOT}] 요렇게 처주면 내가 지정한
/home/embed/project/arm/huins/ 디렉토리로 바로 접근해 버리게 되는것이죠.
이 파일은 터미널을 시작했을때 바로 나오는 폴더
즉 root 계정 폴더나 임의 계정 폴더에 직접 넣고,
터미널이 실행되어지고 프롬프트가 뜨면
[source env_arm_huins.sh] 이렇게 실행해주면 됩니다.
난 왜 실행이 안되요~ 이런 질문 던지면 난감한게... 쉘파일 만들고 나서
권한 설정 바꿔주는거 잊으면 안됩니다. 위에 참조하세요.
그럼 자동으로 바로 작업할 폴더로 이동되면서 위의 환경 변수들이 지정되는것이죠.
이런 환경 변수들의 확인은 [env | more] 명령을 통해서 확인이 가능하답니다.
참고로 처음 사용할 크로스 컴파일러 huins_cross.tgz는
/usr/local에 Huins용 컴파일러 압축 파일을 가져다 놓고 압축을 풀어주고,
차후 Target board에 사용할 커널이미지를 만들어줄 파일 huins_kernel.tgz은
${PROJROOT}/kernel에 다운 받아 일단 압축 풀어주고,
초기 부트로더와 같은 이미지를 전송시켜주기 위해 jtag도 미리 가져와서 설치 해야겠죠.
huins_jtag.tgz 는 ${PROJROOT}/tools에 다운받아서 압축 해제해 줍니다.
압축 해제는 모두 [tar xvzf 파일명]이면 됩니다.
그럼 첫번째 시간은 이것으로 20000.....
이 글과 관련있는 글을 자동검색한 결과입니다 [?]
- Q.3 쉘 환경변수 설정 by 충남이
- Apache Tomcat 설치기 by Ego君
- 제한된 기능을 가진 쉘의 활용 by 날아라궁뒤
- 갑자기 리눅스가 먹통이 된 사연,,-- 음, 알고보니 자테온쪽 설정시 문제가,, by 하늘바라기
- gcc 기초 강좌 by daftcoder
# by | 2007/10/22 22:59 | Embedded Linux | 트랙백 | 덧글(0)




☞ 내 이글루에 이 글과 관련된 글 쓰기 (트랙백 보내기) [도움말]