Chromium Code Reviews| OLD | NEW |
|---|---|
| 1 #!/bin/bash | 1 #!/bin/bash |
| 2 | 2 |
| 3 # Copyright (c) 2009 The Chromium OS Authors. All rights reserved. | 3 # Copyright (c) 2009 The Chromium OS Authors. All rights reserved. |
| 4 # Use of this source code is governed by a BSD-style license that can be | 4 # Use of this source code is governed by a BSD-style license that can be |
| 5 # found in the LICENSE file. | 5 # found in the LICENSE file. |
| 6 | 6 |
| 7 # Script to build a bootable keyfob-based chromeos system image from within | 7 # Script to build a bootable keyfob-based chromeos system image from within |
| 8 # a chromiumos setup. This assumes that all needed packages have been built into | 8 # a chromiumos setup. This assumes that all needed packages have been built into |
| 9 # the given target's root with binary packages turned on. This script will | 9 # the given target's root with binary packages turned on. This script will |
| 10 # build the Chrome OS image using only pre-built binary packages. | 10 # build the Chrome OS image using only pre-built binary packages. |
| (...skipping 400 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 411 ${SCRIPTS_DIR}/mount_gpt_image.sh --from "${OUTPUT_DIR}" \ | 411 ${SCRIPTS_DIR}/mount_gpt_image.sh --from "${OUTPUT_DIR}" \ |
| 412 --image "${image_name}" -r "${ROOT_FS_DIR}" \ | 412 --image "${image_name}" -r "${ROOT_FS_DIR}" \ |
| 413 -s "${STATEFUL_FS_DIR}" -e "${ESP_FS_DIR}" | 413 -s "${STATEFUL_FS_DIR}" -e "${ESP_FS_DIR}" |
| 414 | 414 |
| 415 # Determine the root dir for developer packages. | 415 # Determine the root dir for developer packages. |
| 416 local root_dev_dir="${ROOT_FS_DIR}" | 416 local root_dev_dir="${ROOT_FS_DIR}" |
| 417 [ ${FLAGS_statefuldev} -eq ${FLAGS_TRUE} ] && \ | 417 [ ${FLAGS_statefuldev} -eq ${FLAGS_TRUE} ] && \ |
| 418 root_dev_dir="${ROOT_FS_DIR}/usr/local" | 418 root_dev_dir="${ROOT_FS_DIR}/usr/local" |
| 419 | 419 |
| 420 # Install developer packages described in chromeos-dev. | 420 # Install developer packages described in chromeos-dev. |
| 421 sudo INSTALL_MASK="${INSTALL_MASK}" ${EMERGE_BOARD_CMD} \ | 421 sudo USE="${USE} ${EXTRA_USE}" INSTALL_MASK="${INSTALL_MASK}" \ |
|
davidjames
2011/04/05 20:09:43
Thanks, can you also add the -E argument to sudo w
| |
| 422 --root="${root_dev_dir}" --root-deps=rdeps \ | 422 ${EMERGE_BOARD_CMD} --root="${root_dev_dir}" --root-deps=rdeps \ |
| 423 --usepkgonly -uDNv chromeos-dev ${EMERGE_JOBS} | 423 --usepkgonly -uDNv chromeos-dev ${EMERGE_JOBS} |
|
kliegs
2011/04/05 20:14:05
I thought you'd mentioned on IRC the need to remov
| |
| 424 | 424 |
| 425 if [[ $FLAGS_preserve -eq ${FLAGS_TRUE} ]] ; then | 425 if [[ $FLAGS_preserve -eq ${FLAGS_TRUE} ]] ; then |
| 426 # Clean out unused packages | 426 # Clean out unused packages |
| 427 sudo INSTALL_MASK="${INSTALL_MASK}" ${EMERGE_BOARD_CMD} \ | 427 sudo USE="${USE} ${EXTRA_USE}" INSTALL_MASK="${INSTALL_MASK}" \ |
| 428 --root="${ROOT_FS_DIR}" --root-deps=rdeps \ | 428 ${EMERGE_BOARD_CMD} --root="${ROOT_FS_DIR}" --root-deps=rdeps \ |
| 429 --usepkgonly --depclean ${EMERGE_JOBS} | 429 --usepkgonly --depclean ${EMERGE_JOBS} |
| 430 fi | 430 fi |
| 431 | 431 |
| 432 # Install the bare necessary files so that the "emerge" command works | 432 # Install the bare necessary files so that the "emerge" command works |
| 433 if [ ${FLAGS_statefuldev} -eq ${FLAGS_TRUE} ]; then | 433 if [ ${FLAGS_statefuldev} -eq ${FLAGS_TRUE} ]; then |
| 434 sudo cp -a ${root_dev_dir}/share/portage ${ROOT_FS_DIR}/usr/share | 434 sudo cp -a ${root_dev_dir}/share/portage ${ROOT_FS_DIR}/usr/share |
| 435 sudo sed -i s,/usr/bin/wget,wget, \ | 435 sudo sed -i s,/usr/bin/wget,wget, \ |
| 436 ${ROOT_FS_DIR}/usr/share/portage/config/make.globals | 436 ${ROOT_FS_DIR}/usr/share/portage/config/make.globals |
| 437 fi | 437 fi |
| 438 sudo mkdir -p ${ROOT_FS_DIR}/etc/make.profile | 438 sudo mkdir -p ${ROOT_FS_DIR}/etc/make.profile |
| (...skipping 60 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 499 echo "Updating base packages on ${image_name}" | 499 echo "Updating base packages on ${image_name}" |
| 500 | 500 |
| 501 # Create stateful partition of the same size as the rootfs. | 501 # Create stateful partition of the same size as the rootfs. |
| 502 trap "mount_gpt_cleanup" EXIT | 502 trap "mount_gpt_cleanup" EXIT |
| 503 | 503 |
| 504 ${SCRIPTS_DIR}/mount_gpt_image.sh --from "${OUTPUT_DIR}" \ | 504 ${SCRIPTS_DIR}/mount_gpt_image.sh --from "${OUTPUT_DIR}" \ |
| 505 --image "${image_name}" -r "${ROOT_FS_DIR}" \ | 505 --image "${image_name}" -r "${ROOT_FS_DIR}" \ |
| 506 -s "${STATEFUL_FS_DIR}" -e "${ESP_FS_DIR}" | 506 -s "${STATEFUL_FS_DIR}" -e "${ESP_FS_DIR}" |
| 507 | 507 |
| 508 # Emerge updated packages, exactly like when creating base image | 508 # Emerge updated packages, exactly like when creating base image |
| 509 sudo USE="${EXTRA_USE}" INSTALL_MASK="${INSTALL_MASK}" ${EMERGE_BOARD_CMD} \ | 509 sudo USE="${EXTRA_USE}" INSTALL_MASK="${INSTALL_MASK}" ${EMERGE_BOARD_CMD} \ |
|
davidjames
2011/04/05 20:09:43
This should be updated as well to fix the --preser
| |
| 510 --root="${ROOT_FS_DIR}" --root-deps=rdeps \ | 510 --root="${ROOT_FS_DIR}" --root-deps=rdeps \ |
| 511 --usepkgonly -uDNv chromeos ${EXTRA_PACKAGES} ${EMERGE_JOBS} | 511 --usepkgonly -uDNv chromeos ${EXTRA_PACKAGES} ${EMERGE_JOBS} |
| 512 | 512 |
| 513 # Clean out unused packages | 513 # Clean out unused packages |
| 514 sudo INSTALL_MASK="${INSTALL_MASK}" ${EMERGE_BOARD_CMD} \ | 514 sudo INSTALL_MASK="${INSTALL_MASK}" ${EMERGE_BOARD_CMD} \ |
|
davidjames
2011/04/05 20:09:43
Same here.
| |
| 515 --root="${ROOT_FS_DIR}" --root-deps=rdeps \ | 515 --root="${ROOT_FS_DIR}" --root-deps=rdeps \ |
| 516 --usepkgonly --depclean ${EMERGE_JOBS} | 516 --usepkgonly --depclean ${EMERGE_JOBS} |
| 517 | 517 |
| 518 trap - EXIT | 518 trap - EXIT |
| 519 ${SCRIPTS_DIR}/mount_gpt_image.sh -u -r "${ROOT_FS_DIR}" \ | 519 ${SCRIPTS_DIR}/mount_gpt_image.sh -u -r "${ROOT_FS_DIR}" \ |
| 520 -s "${STATEFUL_FS_DIR}" -e "${ESP_FS_DIR}" | 520 -s "${STATEFUL_FS_DIR}" -e "${ESP_FS_DIR}" |
| 521 } | 521 } |
| 522 | 522 |
| 523 zero_free_space() { | 523 zero_free_space() { |
| 524 local fs_mount_point=$1 | 524 local fs_mount_point=$1 |
| (...skipping 106 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 631 sudo mkdir -p "${ROOT_FS_DIR}/usr/local" | 631 sudo mkdir -p "${ROOT_FS_DIR}/usr/local" |
| 632 sudo mount --bind "${DEV_IMAGE_ROOT}" "${ROOT_FS_DIR}/usr/local" | 632 sudo mount --bind "${DEV_IMAGE_ROOT}" "${ROOT_FS_DIR}/usr/local" |
| 633 sudo mkdir -p "${ROOT_FS_DIR}/var" | 633 sudo mkdir -p "${ROOT_FS_DIR}/var" |
| 634 sudo mount --bind "${STATEFUL_FS_DIR}/var" "${ROOT_FS_DIR}/var" | 634 sudo mount --bind "${STATEFUL_FS_DIR}/var" "${ROOT_FS_DIR}/var" |
| 635 sudo mkdir -p "${ROOT_FS_DIR}/dev" | 635 sudo mkdir -p "${ROOT_FS_DIR}/dev" |
| 636 | 636 |
| 637 # We "emerge --root=${ROOT_FS_DIR} --root-deps=rdeps --usepkgonly" all of the | 637 # We "emerge --root=${ROOT_FS_DIR} --root-deps=rdeps --usepkgonly" all of the |
| 638 # runtime packages for chrome os. This builds up a chrome os image from | 638 # runtime packages for chrome os. This builds up a chrome os image from |
| 639 # binary packages with runtime dependencies only. We use INSTALL_MASK to | 639 # binary packages with runtime dependencies only. We use INSTALL_MASK to |
| 640 # trim the image size as much as possible. | 640 # trim the image size as much as possible. |
| 641 sudo USE="${EXTRA_USE}" INSTALL_MASK="${INSTALL_MASK}" ${EMERGE_BOARD_CMD} \ | 641 sudo USE="${EXTRA_USE}" INSTALL_MASK="${INSTALL_MASK}" ${EMERGE_BOARD_CMD} \ |
|
davidjames
2011/04/05 20:09:43
Strictly speaking this doesn't need USE flags but
| |
| 642 --root="${ROOT_FS_DIR}" --root-deps=rdeps \ | 642 --root="${ROOT_FS_DIR}" --root-deps=rdeps \ |
| 643 --usepkgonly chromeos ${EXTRA_PACKAGES} ${EMERGE_JOBS} | 643 --usepkgonly chromeos ${EXTRA_PACKAGES} ${EMERGE_JOBS} |
| 644 | 644 |
| 645 # Set /etc/lsb-release on the image. | 645 # Set /etc/lsb-release on the image. |
| 646 "${OVERLAY_CHROMEOS_DIR}/scripts/cros_set_lsb_release" \ | 646 "${OVERLAY_CHROMEOS_DIR}/scripts/cros_set_lsb_release" \ |
| 647 --root="${ROOT_FS_DIR}" \ | 647 --root="${ROOT_FS_DIR}" \ |
| 648 --board="${BOARD}" | 648 --board="${BOARD}" |
| 649 | 649 |
| 650 # Populates the root filesystem with legacy bootloader templates | 650 # Populates the root filesystem with legacy bootloader templates |
| 651 # appropriate for the platform. The autoupdater and installer will | 651 # appropriate for the platform. The autoupdater and installer will |
| (...skipping 159 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 811 echo "Developer image created as ${DEVELOPER_IMAGE_NAME}" | 811 echo "Developer image created as ${DEVELOPER_IMAGE_NAME}" |
| 812 fi | 812 fi |
| 813 | 813 |
| 814 print_time_elapsed | 814 print_time_elapsed |
| 815 | 815 |
| 816 echo "To copy to USB keyfob, do something like:" | 816 echo "To copy to USB keyfob, do something like:" |
| 817 echo " ./image_to_usb.sh --from=${OUTSIDE_OUTPUT_DIR} --to=/dev/sdX" | 817 echo " ./image_to_usb.sh --from=${OUTSIDE_OUTPUT_DIR} --to=/dev/sdX" |
| 818 echo "To convert to VMWare image, INSIDE the chroot, do something like:" | 818 echo "To convert to VMWare image, INSIDE the chroot, do something like:" |
| 819 echo " ./image_to_vm.sh --from=${OUTSIDE_OUTPUT_DIR} --board=${BOARD}" | 819 echo " ./image_to_vm.sh --from=${OUTSIDE_OUTPUT_DIR} --board=${BOARD}" |
| 820 echo "from the scripts directory where you entered the chroot." | 820 echo "from the scripts directory where you entered the chroot." |
| OLD | NEW |