크로미움 OS 빌드하기
이 문서는 크로미움 OS를 빌드하는 과정을 기술하고 있습니다.
이 문서는 Chromium OS Developer Guide(2012.04.14)를 기반으로 작성되었습니다.
아래에서 작업하는 사용자 계정 및 폴더의 위치가 스크린 샷과 상이할 수 있습니다.
자신의 환경에 맞추어 작업해주시기 바랍니다.
chroot 환경 만들기
드디어 다운로드 받은 소스 코드를 빌드합니다.
빌드하기 위해서는 chroot 환경을 구축해야 합니다.
크로미움 OS를 빌드하기 위한 툴과 환경을 모든 사람들이 똑같이 사용하려면 모든 빌드과정이 chroot 안에서 이루어져야합니다. chroot 환경에는 자체 컴파일러와 툴들이 존재합니다.
다운로드 받은 소스 코드 내부에는 chroot 환경 구축 하는 스크립트가 존재합니다.
이 작업도 상당한 시간이 소요될 수 있습니다. (4코어에서 한시간 가량 소요됨)
또한 루트1) 계정이 아닌 계정에서 실행되어야 합니다.
./chromite/bin/cros_sdk
이 명령어는 Chromium OS 미러 서버로 부터 약 400M에 달하는 prebuilt chroot 패키지들을 다운로드 합니다. 만약 소스 빌드를 하고 싶거나, 서버 접속에 문제가 있는 경우에는 --bootstrap 옵션을 사용하시면 됩니다. 주의해야할 점은 이 명령어가 실행 된 이후 chroot 에 진입하게 됩니다. 만약 빌드만을 목적으로 한다면 --download 옵션을 이용하시기 바랍니다.
--bootstrap 옵션은 4코어에서 약 30분정도가 소요됩니다. chroot 가 생성된 이후에, chroot는 약 3GB 정도의 공간을 차지하게 됩니다.
chroot는 기본적으로 크로미움 OS 소스를 받은 디렉토리에서 chroot에 생성됩니다. 그 안에는 chroot만의 루트 파일시스템이 들어가 있습니다. 따라서 chroot 만의 유틸리티 (예 : ls)들을 가지고 있습니다.
사이드 노트
- chroot 를 자주 생성할 필요가 없습니다. 대부분의 개발자들은 chroot를 한번만 생성해놓고 다신 건들지 않습니다.
- cros_sdk 는 proxy server 상태에서는 동작하지 않습니다.
- 해결법은 http://crosbug.com/10048를 참고해주세요.
Chroot 진입하기
chroot에 진입하는 명령어는 다음과 같습니다.
./chromite/bin/cros_sdk
이는 chroot 를 만드는 명령어와 같습니다. 만약 chroot 가 존재한다면 chroot 환경으로 자동으로 들어가니 안심하셔도 됩니다.
위 명령어를 치면 sudo 를 위한 패스워드를 입력받게 됩니다. 그 뒤, 터미널은 chroot 상태로 진입하게 되며 ~/trunk/src/scripts로 디렉토리가 변경됩니다.
chroot 환경 안에서 prompt 화면에 “(cros-chroot)” 가 보이게 되며, 다음과 같은 화면으로 나타납니다.
(cros-chroot) johnnyrotten@flyingkite ~/trunk/src/scripts $
사이드 노트
- 만약 chroot 를 지우고 싶다면, cros_sdk –delete 를 이용하여 지우셔야 합니다.
빌드 환경 설정
크로미움 OS 제품의 디스크 이미지(일반적으로 이미지라고 불림)를 빌드하면 크로미움 OS를 실행시킬 컴퓨터의 디스크로 바로 복사할 수 있습니다.
./setup_board --board=arm-generic
chronos 계정 암호 설정
사용자가 크로미움 OS를 사용할 때에는 chronos라는 계정을 이용하게 됩니다.2)
이 계정의 비밀번호를 설정해주기 위해 다음의 스크립트를 실행합니다.
./set_shared_user_password.sh
빌드하기
이제 정말로 빌드를 시작합니다. 이것 역시 저장된 스크립트 파일을 이용합니다.
이 과정이 진행되는 시간은 컴퓨터의 성능에 많이 좌우되기 때문에 높은 성능의 컴퓨터에서 진행하시는 것을 매우 추천합니다.
빌드를 진행하시려면 ./build_packages 스크립트를 이용하시면 됩니다.
./build_packages --board=arm-generic --nowithfactory
그리고 빌드를 위해 이용하실 수 있는 옵션들에는 --nowithdev, --nowithautotest 등과 같은 몇 가지가 더 있습니다. 만일 이러한 옵션들이 뜻하는 것과 같이 개발자 도구와 자동 테스트 도구를 같이 빌드하지 않을 예정이어도, 이 옵션들은 사용하지 않으시는게 좋습니다. 왜냐하면 이러한 옵션들 중 하나라도 이용할 경우 가상 패키지들에 대해 디버그하는 것이 어려워지는 이유가 된다는 이슈가 있기 때문입니다.
여기서 nowithfactory 옵션을 사용해준 이유는, 보드에서 부팅 시 factory 관련 프로세스들로 인해 정상적인 부팅이 되지 않는 상황을 초래하기 때문에 factory 관련 내용을 제외시켜 주었습니다.

패키지 빌드가 끝나면 아래와 같은 화면이 나타납니다.

패키지 빌드가 완료되면 그것들을 이용해 단일 이미지 파일을 생성해 줄 수 있습니다.
아래의 스크립트를 이용해 이미지 파일의 빌드를 시작합니다.3)
./build_image --board=arm-generic --withdev --noenable_rootfs_verification
위의 스크립트를 실행하면 루트 파일 시스템을 자유롭게 수정할 수 있도록 개발자 도구가 함께 설치됩니다. 이렇게 생성되는 이미지는 크로미움 OS의 stable 버전은 아니지만, 크로미움 OS에 자유롭게 접근할 수 있게 됩니다.
만일 크로미움 OS의 stable 버전을 원하신다면 --withdev, --noenable_rootfs_verification 옵션을 제거하고 빌드하시면 됩니다.

이미지 빌드까지 완료되면 아래와 같은 화면이 나타납니다.

빌드된 이미지는 chroot 환경에서 ~/trunk/src/build/image/arm-generic/(버전 번호) 디렉터리에 저장되게 됩니다.
또한 ~/trunk/src/build/image/arm-generic/latest 위치로 가장 최근에 빌드된 결과물의 디렉터리가 링크되어 있습니다.
위의 과정까지 모두 마치셨으면 크로미움 OS의 이미지 파일까지 빌드를 완료한 것입니다.


