IT 기술/Developer article

[소개]IBM DeveloperWorks : 바닥부터 만들어보는 임베디드 리눅스 배포판

ㅇㅔ ㄷㅡ 2008. 10. 31. 15:20
 Linux 관련 커뮤니티에 올라오는 글들을 보면 가끔씩 임베디드 보드나 미니 ITX 보드등에 CF 카드나 메모리 기반 저장장치를 이용해서 리눅스 박스를 꾸미는 분들이 글을 올리시곤 합니다. 재밌어 보이기도 하지만 막상 시도해보려면 장애물이 많죠. 하드웨어 구매에서 리눅스 설치까지 난관이 많습니다. 10월 28일에 한국IBM DeveloperWorks에 임베디드 리눅스 배포판을 설치하는 튜토리얼이 올라와있어서 소개합니다.

원문 : 바닥부터 만들어보는 임베디드 리눅스 배포판


임베디드 환경에서 쓸 수 있는 리눅스(Linux®) 배포판을 어떻게 만들 수 있을지 배워보겠습니다. 이 내용에서는 TS-7800 싱글 보드 컴퓨터를 동작시키는 경우를 예로 들었습니다. 이 튜토리얼에서는 크로스 컴파일링(cross-compiling), 부트 로더(boot loader), 파일 시스템, 루트 파일 시스템, 디스크 이미지, 부트 프로세스 등 시스템을 만들고 배포판을 생성하는 데 결정해야 할 모든 측면에 대해 배울 것입니다.

시작하기 전에

목표

이 튜토리얼에서는 대상 시스템에 리눅스를 어떻게 설치할지 보인다. 미리 만들어진 리눅스 배포판을 쓰는 게 아니라 처음부터 독자들 스스로 만들어내는 것이다. 당연히 대상에 따라 상세 과정은 다르지만 일반적인 주제는 똑같이 적용된다.

이 튜토리얼을 끝내고 나면(적절한 대상 시스템을 갖고 있다면) 셸 프롬프트가 깜빡거리는 제대로 동작하는 리눅스 시스템이다.

이 튜토리얼에 관해

튜토리얼은 크로스 컴파일에 관한 이슈 토론으로 시작한다. 그러고 나서 리눅스 시스템의 컴포넌트가 무엇인지 그리고 이것들을 어떻게 한데 넣을 것인지 논의한다. 빌드와 설치 그리고 대상 시스템의 설정에 대해서도 다룬다.

여 기서 논의할 구체적인 대상 시스템인 Technologic Systems의 TS-7800은 기본적으로 스스로 부트할 수 있는 기능을 갖고 있다. 다른 시스템은 다른 메커니즘을 갖고 있을 것이다. 그리고 이 튜토리얼에서는 이외 모든 가능한 부트 로더에 대해 그다지 자세하게 다루지는 않을 것이다.

먼저 준비해야 할 것들 그리고 시스템 요구 사항

대상으로 삼을 임베디드 시스템에 관심을 갖고 있는 개발자들이든, 꼭 그렇지 않더라도 그저 리눅스 시스템이 어떻게 생겼는지 들여다보고 싶은 개발자들이든 이 튜토리얼에서 많은 걸 얻을 것이다.

사용할 호스트 환경은 우분투(Ubuntu)이지만 다른 시스템도 동작한다. 기본적으로 유닉스(UNIX®)나 리눅스 시스템 관리를 할 수 있다고 가정한다. 이 튜토리얼에서는 호스트 시스템에 루트(root) 접근을 갖고 있다고 가정한다.

이 튜토리얼에서는 여러분이 사용할 셸이 본(Bourne)셸 종류라고 가정한다. C셸을 사용한다면 아마도 프롬프트가 다르게 나타날 텐데 환경 변수 설정할 때 다른 명령어를 사용해야 할 필요가 있을 것이다.

크로스 컴파일링을 위해 필자는 2008년 5월에 발표된 crosstool-ng 버전 1.1.0을 사용했다. 배포 사이트(참고자료 참조)에서 다운로드할 수 있을 것이다. 설치와 설정에 대해서는 상세 내용을 참조하기 바란다.