Quick start guide 링크 :

http://www.chromium.org/chromium-os/quick-start-guide


Full 버전 링크 :

http://www.chromium.org/chromium-os/developer-guide#TOC-Building-Chromium-OS


x86 경우, Legacy BIOS 와 EFI BIOS에 따라 부팅 스텝이 다르다.

http://www.chromium.org/chromium-os/chromiumos-design-docs/disk-format

EFI BIOS : /boot/efi/boot

Legacy BIOS : /boot/syslinux


우선 ChromiumOS를 구동하려는 PC는 Intel Q6600, ATI graphic card, Legacy BIOS Mainboard, HDD가 2개 연결되어 있다.

HDD 2개가 연결되어 있어, USB Memory stick으로 구동하기 위해 추가 작업이 필요한데...


chromiumOS 소스는 stabilize.5978.51.B 테그로 받고 빌드를 진행했다.

$ repo init -u https://chromium.googlesource.com/chromiumos/manifest.git -b stabilize.5978.51.B

$ cros_sdk

$ export BOARD=amd64-generic

$ ./setup_board --board=${BOARD}

$ ./build_packages --board=${BOARD} 

$ ./build_image --board=${BOARD} --noenable_rootfs_verification dev

$ cros flash usb:// ${BOARD}/latest


첫 빌드한 이미지를 USB disk에 넣고 부팅한 결과는 mount_root에서 panic. (어느 파티션을 root라고 설정 했길래...-_-;)


기왕 시작한거 디버깅 로그도 봐야 하니, 시리얼 케이블(널모뎀 케이블)을 구매. 메인보드에서 잠자고 있는 시리얼 포트를 깨웠다.

(메인보드 백패널로 시리얼 포트가 더이상 나와 있지 않으니, 이제 슬롯쪽으로 포트를 뽑아야 쓸수 있다.)


Default root partition이 /dev/sdb3 으로 되어 있는 것을 확인

(일반적으로 HDD 1개만 연결하였다면, USB disk를 sdb로 인식해서 mount에 문제없었을 것이다.)


$ ./build_image --board=${BOARD} --noenable_rootfs_verification dev --boot_args="noinitrd console=ttyS0,115200n8" --usb_disk="/dev/sdc3" --enable_serial="console=ttyS0,115200n8"

이제 문제 없겠지 생각했지만 여전히 panic.

/boot/syslinux/usb.A.cfg 에는 root=/dev/sdb3로 남아있다. OTL

label chromeos-usb.A

  menu label chromeos-usb.A

  kernel vmlinuz.A

  append console=tty2 init=/sbin/init boot=local rootwait ro noresume noswap loglevel=7 noinitrd console=ttyS0,115200n8 root=/dev/sdb3 i915.modeset=1 cros_legacy cros_debug


결국, 아래 파일에 --usb_disk 옵션을 넘겨주는 부분이 빠진것을 추가하고 난 후에 syslinux 설정이 root=/dev/sdc3로  바뀌었다.

=> mount_root 문제는 해결.

~/trunk/src/scripts/build_library/base_image_util.sh

  ${BUILD_LIBRARY_DIR}/create_legacy_bootloader_templates.sh \

    --arch=${ARCH} \

    --to="${root_fs_dir}"/boot \

    --boot_args="${FLAGS_boot_args}" \

    --usb_disk="${FLAGS_usb_disk}" \

      ${enable_rootfs_verification} \

      ${enable_bootcache}


Developer Console login까지 진입하였다.


ATI graphic card driver 부분에 대한 추가작업이 필요한지, X server는 에러를 토해내고 동작하지 않는다.

퇴근 후, 집에서 짜투리 시간이 있을때 작업을 한거라, 여기까지 진행하는데 거의 한달이 걸렸다. OTL

ChromiumOS 로그인 창을 볼수 있을까?


Chrome OS의 빌드는 Gentoo Linux의 패키지 관리 시스템 Portage를 확장하여 사용한다.

관련 명령어 요약 정리 링크 :


wiki 링크 :

http://wiki.gentoo.org/wiki/Gentoo_Cheat_Sheet


github 링크 :

https://github.com/jonasstein/gentoo-cheat


gcheat.pdf


+ Recent posts