들어가며

저희가 보드를 판매하면서
가장 감사하게 생각하는 고객은 그냥 보드 모으는 것이 취미이신 분이죠.

 

이런 분들은 1차적으로 제품 구매를 하셔서 저희 급여가 나오도록 하는 선행을 베푸셨음에도 불구하고 보드를 그대로 진열장에 진열하시고 저희에게 아무런 질문 글을 게시판에 올리지 않음으로써 저희에게 다른 일을 하거나 게임을 할 수 있는 시간까지 주시거든요.

 

반대로 저희가 가장 무서워 하는 고객 분들은 임베디드 리눅스가 무엇이고 32 비트 프로세서가 무엇인가를 단기간에 알고야 말겠다는 굳은 의지와 집념으로 똘똘 뭉쳐지시고 저희 포럼 게시판을 하루에서도 몇 번이고 들락 거리시면서 하나 하나씩 해 보시고 궁금한 것을 바로 바로 게시판에 글을 올리시는 분들이죠..

 

더 무서운 신 분은 게시판에 과거 글을 찾지 않고 바로 바로 글을 올리시는 분들이죠..

 

차라리 고수의 실력을 가지신 분들은 두렵지 않습니다.

그분들은 그냥 스스로 해결해 가기 때문에 존재하는지도 잘 모릅니다.

대부분이 은둔자형 고수들이 많기 때문이죠…

 

어쨌든 저희가 가장 무서워 하는 저돌적인 학습 욕구가 왕성한 초보자 분들이 가장 먼저 무한 삽질의 세계에 빠져 들면서 혼란스러워 하는 것이 바로 개발 환경 구축이죠..

 

윈도우 프로그램의 개발 환경은 솔찍하게 그냥 간단합니다.

상용 패키지 하나 깔면 끝~~~ ( 뭐 어둠의 경로를 애용하시는 분들이 더 많다는 소문도 있지만 쩝~ )

 

임베디드 컨트롤러 특히 8비트 프로세서들의 개발 환경도 조금 복잡하지만 에뮬레이터 한 개와 상용 패키지 하나 깔면 끝~~

 

근데…

이놈의 임베디드 리눅스 하려면 ( 물론 돈 안 들이려고 하는 조건일 때 )

뭐가 이리 복잡하고 할 수 있는 다양한 방법이 존재 하는지

 

그래서 처음부터 좌절하는 경향이 있죠..

그래서 이번 진행 과정에 사용되는 환경에 대하여 제가 사용하고 있는 환경을 공개하겠습니다

 

개발 환경

커널을 포팅하는 과정은 다음과 같은 행위의 반복입니다.

1) 커널을 수정한다.
2) 커널을 컴파일 한다.
3) 커널을 보드에 올린다.
4) 보드를 리부팅한다.
5) 커널이 부팅된 후 진행 상태를 커널 메시지로 관찰한다.
6) 버그나 다음 작업 진행을 위해서 1) 부터 다시 시작한다.

자 이런 행위를 하기 위해서 필요한 것들이 무엇일까요?

 

우선 개발용 컴퓨터와 커널이 포팅되는 타켓이 필요하겠죠?

 

그 외에 파워써플라이와 오실로스코프가 있으면 좋겠지만 사실 하드웨어가 이상이 없다면 굳이 필요 없습니다. 파워 써플라이는 아답터로 대신 할테고 하드웨어 상태가 오실로스코프를 쓸 정도면 초보자들은 일단 손을 띄시는 것이 정신 건강에 이롭습니다.

 

이제 개발용 컴퓨터와 타켓은 서로 연결되어야 합니다.


뭘로 연결될까요?
예 그렇습니다.
시리얼 케이블과 이더넷 네트워크 케이블입니다.


이 두 가지 케이블은 저희 제품을 구매 하셨을 때 받으셨을 겁니다.

 

네트워크 구성은 아무래도 컴퓨터와 보드를 직접 연결하기 보다는 네트워크 허브나 공유기를 이용하시면 더 편하지요..

 

전 당연히 허브를 이용한 구성으로 작업 하고 있습니다.

제 시스템 환경 구성은 다음 그림과 같습니다.

 

 A004_001_computer_board.png

 

 자 이제 하드웨어 와 시스템 구성은 되었습니다.

 

그 다음 하는 것은 ?

1) 커널을 수정한다.

그렇습니다.

커널을 수정해야 합니다.

 

커널은 컴퓨터에서 수정해야 하는데 해당 컴퓨터는 운영체제가 있어야 겠죠…

 

저는 개발 환경 운영체제가 윈도우 XP 를 사용합니다.

 

허허~~

많은 분들이 제가 열혈 리눅서라고 착각하시는 분들이 있고 제가 리눅스 운영체제에서 모든 작업을 할 것이라고 상상하시는 분들이 있을지 모르지만

 

전 VI 에디터도 잘 못 씁니다. 물론 사용할 수야 있지만 저희 회사에 근무하고 계시는 켈프 짱이신 박진호씨의 화려한 VI 사용 실력을 보면 전 그냥 쭈구러 듭니다.

 

리눅스 명령어도 사실 몇 개 밖에 모릅니다.

 

하하

 

그래도 임베디드 리눅스와 관련된 기술만은 타의 추종을 불허 한다고 자신..
( 퍽~~~ ㅠㅠ 죄송합니다. 잠시 오버 했습니다. )

 

어쩄든 윈도우에서 편집기 돌려 리눅스 커널 소스를 수정합니다.

 

오호 … 그런데  혹시 아십니까?

 

리눅스 커널소스를 윈도우에서 압출을 풀면 쪼까 문제가 된다는 것을?

리눅스 커널 소스는 원칙적으로 리눅스 파일 시스템을 이용한다는 가정하에 구성되고 있습니다.

 

가장 대표적인 것이 심볼릭 링크 입니다.
또 한가지는 소스 파일 중 어셈블러 파일일 경우 확장자가 대문자인경우와 소문자인 경우가 약간 차이가 납니다.

 

어찌 되었던

리눅스 커널 소스는 리눅스 파일 시스템에서 압축을 풀고 작업을 해야 합니다.  (반드시는 아닙니다.)


자 ..

그렇다면 아무래도 리눅스 시스템이 필요하겠죠?

 

그런데 눈치 채셨겠지만 개발 시스템 구성상 전 이미 운영체제를 XP 로 설치한 상태이고 리눅스는 멀티 부팅하기 귀찮아 합니다.

 

그래서 저는 coLinux를 사용합니다.

 

이거 저에게는 노트북에도 설치해서리 현장에 갈 경우 씁니다.
아니면 다른 실험실 같은 곳에서 개발 작업이나 연구를 해야 할 때 씁니다.

 

한마디로 죽이는 놈이 coLinux 입니다.

 

coLinux 설치방법은 저희 회사 포럼에 잘 나와 있죠. 바로 여기

http://forum.falinux.com/zbxe/?mid=coLinux


이 강좌에 글을 따라 하실 때 먼저 브릿지 모드로 네트워크를 설정하는 강좌를 먼저읽고 진행하기를 권장합니다.

http://forum.falinux.com/zbxe/?document_srl=507011

솔직히 제 경험상 가장 실패 율이 적습니다.

그런데 위 강좌 글을 따라 하면 2 % 부족함을 느낄 겁니다.

 

예 ..

그렇습니다.

 

진행을 하다 보면 이것저것 필요한 개발 패키지와 시스템이 설치 되어 있어야 합니다.

 

이걸 또 일일이 찾아 다니며 필요한 것들이 무엇인가 찾고 하는 것도 그리 쉬운 것이 아니죠…

그래서 제가 여러분들에게 선물을 하나 하기로 했습니다 .

그게 뭐냐?

제가 사용하고 있는 coLinux 이미지를 공개 하기로 한 것이죠

 

 공개 coLinux 이미지 내용

 

 이 이미지는 다음과 같은 환경 조건을 가지고 있습니다.

 

파일 시스템 크기 :  6G
배포판 기반  : 페도라 9 ( 가장 최신것으로 업데이트 된 상태임 )
네트워크  : 100.100.100.100 
넷마스크  : 255.255.0.0

설치된 크로스 컴파일러 :

arm 용 3.4.3
mips 용 3.4.3
mingw 윈도우용 컴파일러

네트워크 서버 :

tftp 서버    /tftpboot/  디렉토리 서비스
nfs 서버   /nfs/ 디렉토리 서비스
삼바서버   /project/ 디렉토리 서비스

각종 리눅스 개발 툴에 필요한 패키지 대부분 설치
man 페이지 : 한글 맨페이지 및 영문 맨페이지

사용자 명은 : user
암호   : user

Root 암호는 : root

 이거 어디서 받냐고요? 여기서 받습니다.

http://ftp.falinux.com/colinux/fedora9/Fedora9-6G-2009-05-05-yyc.img

이 이미지는 우선 포럼에서

http://forum.falinux.com/zbxe/?document_srl=505577 글을 보고

colinux 설치 하신 후

제가 올린 위 이미지로 살포시 바꾸시기 바랍니다.

이 이미지에 보면 내부에 /root 에 스크립트 파일이 하나 있습니다.
이건 ip와 라우터를 쉘 스크립트로 바꾸는 예제인데 혹시나 해서 하나 만들어 넣었습니다.

필요하시면 참조 하세요..
 

자 이제 제가 올려 드린 colinux 환경이라고 하면

 

윈도우에서 삼바로 접근해야 할겁니다.

 

네트워크 설정이

윈도우는 100.100.100.101 이고 colinux 페도라 배포판이 100.100.100.100이라면

 

윈도우 탐색기에서 \\100.100.100.100\ 이렇게 하시면

Colinux 페도라의 project 에 접근 하실 수 있겠죠…

 

이 네트워크 디렉토리를 이용해서 윈도우에서 편집 할 수 있을 겁니다.

 

그렇지만 아직 우리는 문제가 있죠?

coLinux 에 접근 할 수 있는 방법을 알려 드려야 하는데

텔넷으로 접근해야 겟죠?

 

전 tocken plus 라는 프로그램을 사용합니다 .
여기에 가시면 됩니다.

http://www.bomul.com/pds/view.html?id=53252

한국 분들이 만든 건데 미국에 회사를 차렸나 봐요..

http://choung.net/

하지만 장길석씨는 공개된 프로그램을 이용하라고 하네요
이것도 공짜거든요…

여기에 해당 글 있습니다.

http://forum.falinux.com/zbxe/?mid=manual_booting_win_tutty

시리얼 포트를 연결해서 부팅 메시지 보는 법이나

텔넷을 이용해서 리눅스 컴파일 서버에 접속하는 법은

EZ 보드 통합 매뉴얼을 참고 해 주시기 바랍니다.

기타 진행 사항은 다음 강좌에서 설명할 겁니다.