Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(210)

Side by Side Diff: build_image

Issue 3066037: build_image, mod_image_for_*: break out make_image_bootable (Closed) Base URL: http://src.chromium.org/git/crosutils.git
Patch Set: fix nits; move to boot.desc and bin/cros_ Created 10 years, 4 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
« no previous file with comments | « bin/cros_make_image_bootable ('k') | mod_image_for_dev_recovery.sh » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
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 126 matching lines...) Expand 10 before | Expand all | Expand 10 after
137 137
138 STATEFUL_FS_IMG="${OUTPUT_DIR}/stateful_partition.image" 138 STATEFUL_FS_IMG="${OUTPUT_DIR}/stateful_partition.image"
139 STATEFUL_FS_DIR="${OUTPUT_DIR}/stateful_partition" 139 STATEFUL_FS_DIR="${OUTPUT_DIR}/stateful_partition"
140 140
141 OEM_FS_IMG="${OUTPUT_DIR}/partner_partition.image" 141 OEM_FS_IMG="${OUTPUT_DIR}/partner_partition.image"
142 OEM_FS_DIR="${OUTPUT_DIR}/partner_partition" 142 OEM_FS_DIR="${OUTPUT_DIR}/partner_partition"
143 143
144 ESP_FS_IMG=${OUTPUT_DIR}/esp.image 144 ESP_FS_IMG=${OUTPUT_DIR}/esp.image
145 ESP_FS_DIR=${OUTPUT_DIR}/esp 145 ESP_FS_DIR=${OUTPUT_DIR}/esp
146 146
147 DEVKEYSDIR="/usr/share/vboot/devkeys"
148
147 LOOP_DEV= 149 LOOP_DEV=
148 STATEFUL_LOOP_DEV= 150 STATEFUL_LOOP_DEV=
149 OEM_LOOP_DEV= 151 OEM_LOOP_DEV=
150 ESP_LOOP_DEV= 152 ESP_LOOP_DEV=
151 153
152 # ${DEV_IMAGE_ROOT} specifies the location of where developer packages will 154 # ${DEV_IMAGE_ROOT} specifies the location of where developer packages will
153 # be installed on the stateful dir. On a Chromium OS system, this will 155 # be installed on the stateful dir. On a Chromium OS system, this will
154 # translate to /usr/local. 156 # translate to /usr/local.
155 DEV_IMAGE_ROOT="${STATEFUL_FS_DIR}/dev_image" 157 DEV_IMAGE_ROOT="${STATEFUL_FS_DIR}/dev_image"
156 158
157 # What cross-build are we targeting? 159 # What cross-build are we targeting?
158 . "${BOARD_ROOT}/etc/make.conf.board_setup" 160 . "${BOARD_ROOT}/etc/make.conf.board_setup"
159 LIBC_VERSION=${LIBC_VERSION:-"2.10.1-r1"} 161 LIBC_VERSION=${LIBC_VERSION:-"2.10.1-r1"}
160 162
161 INSTALL_MASK="" 163 INSTALL_MASK=""
162 if [[ ${FLAGS_installmask} -eq ${FLAGS_TRUE} ]] ; then 164 if [[ ${FLAGS_installmask} -eq ${FLAGS_TRUE} ]] ; then
163 INSTALL_MASK="${DEFAULT_INSTALL_MASK}" 165 INSTALL_MASK="${DEFAULT_INSTALL_MASK}"
164 fi 166 fi
165 167
166 # Reduce the size of factory install shim. 168 # Reduce the size of factory install shim.
167 # TODO: Build a separated ebuild for the factory install shim to reduce size. 169 # TODO: Build a separated ebuild for the factory install shim to reduce size.
168 if [[ ${FLAGS_factory_install} -eq ${FLAGS_TRUE} ]] ; then 170 if [[ ${FLAGS_factory_install} -eq ${FLAGS_TRUE} ]] ; then
169 INSTALL_MASK="${INSTALL_MASK} ${FACTORY_INSTALL_MASK}" 171 INSTALL_MASK="${INSTALL_MASK} ${FACTORY_INSTALL_MASK}"
170 fi 172 fi
171 173
172 if [[ ${FLAGS_jobs} -ne -1 ]]; then 174 if [[ ${FLAGS_jobs} -ne -1 ]]; then
173 EMERGE_JOBS="--jobs=${FLAGS_jobs}" 175 EMERGE_JOBS="--jobs=${FLAGS_jobs}"
174 fi 176 fi
175 177
178 if [[ ${FLAGS_enable_rootfs_verification} -eq ${FLAGS_TRUE} ]]; then
179 enable_rootfs_verification_flag="--enable_rootfs_verification"
180 fi
181
176 # Figure out ARCH from the given toolchain. 182 # Figure out ARCH from the given toolchain.
177 # TODO: Move to common.sh as a function after scripts are switched over. 183 # TODO: Move to common.sh as a function after scripts are switched over.
178 TC_ARCH=$(echo "${CHOST}" | awk -F'-' '{ print $1 }') 184 TC_ARCH=$(echo "${CHOST}" | awk -F'-' '{ print $1 }')
179 case "${TC_ARCH}" in 185 case "${TC_ARCH}" in
180 arm*) 186 arm*)
181 ARCH="arm" 187 ARCH="arm"
182 ;; 188 ;;
183 *86) 189 *86)
184 ARCH="x86" 190 ARCH="x86"
185 ;; 191 ;;
(...skipping 87 matching lines...) Expand 10 before | Expand all | Expand 10 after
273 # $3 - Directory where the ESP partition is mounted. 279 # $3 - Directory where the ESP partition is mounted.
274 mount_gpt_cleanup() { 280 mount_gpt_cleanup() {
275 local rootfs="${1-$ROOT_FS_DIR}" 281 local rootfs="${1-$ROOT_FS_DIR}"
276 local statefs="${2-$STATEFUL_FS_DIR}" 282 local statefs="${2-$STATEFUL_FS_DIR}"
277 local espfs="${3-$ESP_FS_DIR}" 283 local espfs="${3-$ESP_FS_DIR}"
278 "${SCRIPTS_DIR}/mount_gpt_image.sh" \ 284 "${SCRIPTS_DIR}/mount_gpt_image.sh" \
279 -u -r "${rootfs}" -s "${statefs}" -e "${espfs}" 285 -u -r "${rootfs}" -s "${statefs}" -e "${espfs}"
280 delete_prompt 286 delete_prompt
281 } 287 }
282 288
283 make_image_bootable() { 289 # Takes no arguments and populates the configuration for
284 local image_name="$1" 290 # cros_make_image_bootable.
285 cros_root=/dev/sd%D%P 291 create_boot_desc() {
286 if [[ "${ARCH}" = "arm" ]]; then 292 cat <<EOF > ${OUTPUT_DIR}/boot.desc
287 # TODO(wad) assumed like in build_gpt for now. 293 --arch="${ARCH}"
288 cros_root=/dev/mmcblk1p3 294 --output_dir="${OUTPUT_DIR}"
289 fi 295 --rootfs_size="${FLAGS_rootfs_size}"
290 if [[ ${FLAGS_enable_rootfs_verification} -eq ${FLAGS_TRUE} ]]; then 296 --rootfs_hash_pad="${FLAGS_rootfs_hash_pad}"
291 cros_root=/dev/dm-0 297 --rootfs_hash="${ROOT_FS_HASH}"
292 fi 298 --rootfs_mountpoint="${ROOT_FS_DIR}"
293 299 --statefulfs_mountpoint="${STATEFUL_FS_DIR}"
294 # TODO(wad) mount the root fs to LOOP_DEV from the image 300 --espfs_mountpoint="${ESP_FS_DIR}"
295 trap "mount_gpt_cleanup" EXIT 301 --verity_error_behavior="${FLAGS_verity_error_behavior}"
296 ${SCRIPTS_DIR}/mount_gpt_image.sh --from "${OUTPUT_DIR}" \ 302 --verity_depth="${FLAGS_verity_depth}"
297 --image "${image_name}" -r "${ROOT_FS_DIR}" \ 303 --verity_max_ios="${FLAGS_verity_max_ios}"
298 -s "${STATEFUL_FS_DIR}" 304 --verity_algorithm="${FLAGS_verity_algorithm}"
299 305 --keys_dir="${DEVKEYSDIR}"
300 # The rootfs should never be mounted rw again after this point without 306 --usb_disk="${FLAGS_usb_disk}"
301 # re-calling make_image_bootable. 307 --nocleanup_dirs
302 sudo mount -o remount,ro "${ROOT_FS_DIR}" 308 ${enable_rootfs_verification_flag}
303 root_dev=$(mount | grep -- "on ${ROOT_FS_DIR} type" | cut -f1 -d' ' | tail -1) 309 EOF
304
305 DEVKEYSDIR="/usr/share/vboot/devkeys"
306
307 # Builds the kernel partition image. The temporary files are kept around
308 # so that we can perform a load_kernel_test later on the final image.
309 ${SCRIPTS_DIR}/build_kernel_image.sh \
310 --arch="${ARCH}" \
311 --to="${OUTPUT_DIR}/vmlinuz.image" \
312 --hd_vblock="${OUTPUT_DIR}/vmlinuz_hd.vblock" \
313 --vmlinuz="${OUTPUT_DIR}/boot/vmlinuz" \
314 --working_dir="${OUTPUT_DIR}" \
315 --keep_work \
316 --rootfs_image=${root_dev} \
317 --rootfs_hash=${ROOT_FS_HASH} \
318 --verity_hash_alg=${FLAGS_verity_algorithm} \
319 --verity_tree_depth=${FLAGS_verity_depth} \
320 --verity_max_ios=${FLAGS_verity_max_ios} \
321 --verity_error_behavior=${FLAGS_verity_error_behavior} \
322 --root=${cros_root} \
323 --keys_dir="${DEVKEYSDIR}"
324
325 local rootfs_hash_size=$(stat -c '%s' ${ROOT_FS_HASH})
326 info "Appending rootfs.hash (${rootfs_hash_size} bytes) to the root fs"
327 if [[ ${rootfs_hash_size} -gt $((FLAGS_rootfs_hash_pad * 1024 * 1024)) ]]
328 then
329 die "--rootfs_hash_pad reserves less than the needed ${rootfs_hash_size}"
330 fi
331 # Unfortunately, mount_gpt_image uses mount and not losetup to create the
332 # loop devices. This means that they are not the correct size. We have to
333 # write directly to the image to append the hash tree data.
334 local hash_offset="$(partoffset ${OUTPUT_DIR}/${image_name} 3)"
335 hash_offset=$((hash_offset + ((1024 * 1024 * ${FLAGS_rootfs_size}) / 512)))
336 sudo dd bs=512 \
337 seek=${hash_offset} \
338 if="${ROOT_FS_HASH}" \
339 of="${OUTPUT_DIR}/${image_name}" \
340 conv=notrunc
341 # We don't need to keep the file around anymore.
342 sudo rm "${ROOT_FS_HASH}"
343
344 # Move the verification block needed for the hard disk install to the
345 # stateful partition. Mount stateful fs, copy file, and umount fs.
346 # In original CL: http://codereview.chromium.org/2868044, this was done in
347 # create_base_image(). However, it could break the build if it is a clean
348 # build because vmlinuz_hd.vblock hasn't been created by build_kernel_image.sh
349 if [[ "${ARCH}" = "x86" ]]; then
350 sudo cp "${OUTPUT_DIR}/vmlinuz_hd.vblock" "${STATEFUL_FS_DIR}"
351 fi
352
353 # START_KERN_A is set by the first call to install the gpt.
354 local koffset="$(partoffset ${OUTPUT_DIR}/${image_name} 2)"
355 sudo dd if="${OUTPUT_DIR}/vmlinuz.image" of="${OUTPUT_DIR}/${image_name}" \
356 conv=notrunc bs=512 seek=${koffset}
357
358 # Update the bootloaders. For legacy/efi x86, the EFI system partition
359 # will be updated and for arm, the mbr will be updated (for u-boot).
360 local kernel_part=
361 local bootloader_to=
362 local bootloader_to_flags=
363 local usb_disk="${FLAGS_usb_disk}"
364
365 if [[ "${ARCH}" = "x86" ]]; then
366 # x86 should update the esp in place in the image.
367 bootloader_to="${OUTPUT_DIR}/${image_name}"
368 local esp_offset="$(partoffset ${OUTPUT_DIR}/${image_name} 12)"
369 esp_offset=$((esp_offset * 512)) # sectors to bytes
370 local esp_size="$(partsize ${OUTPUT_DIR}/${image_name} 12)"
371 esp_size=$((esp_size * 512)) # sectors to bytes
372 bootloader_to_flags="--to_offset=${esp_offset} --to_size=${esp_size}"
373 # Use the kernel partition to acquire configuration flags.
374 kernel_part="--kernel_partition='${OUTPUT_DIR}/vmlinuz.image'"
375 # Install syslinux on the EFI System Partition.
376 kernel_part="${kernel_part} --install_syslinux"
377 elif [[ "${ARCH}" = "arm" ]]; then
378 # TODO(wad) mmcblk1p3 is hardcoded for arm for now!
379 usb_disk="/dev/mmcblk1p3"
380 # ARM doesn't support using the kernel image for kernel cmdline flags yet.
381 kernel_part="--kernel_cmdline=\"${FLAGS_arm_extra_bootargs}\" "
382 # TODO(wad) Integrate dmtable extraction into the arm build
383 # E.g. $(cat ${OUTPUT_DIR}/boot.config | tr -s '\n' ' ')"
384 local kpart_offset="--kernel_partition_offset=${koffset}"
385 local kpart_size="--kernel_partition_sectors="
386 kpart_size="${kpart_size}$(partsize ${OUTPUT_DIR}/${image_name} 2)"
387 kernel_part="${kernel_part} ${kpart_size} ${kpart_offset}"
388 info "Using addition bootloader arguments: ${kernel_part}"
389 bootloader_to="${OUTPUT_DIR}/arm.mbr"
390 fi
391
392 # Update partition 12 / legacy bootloaders and arm.
393 ${SCRIPTS_DIR}/update_bootloaders.sh \
394 --arch=${ARCH} \
395 --to="${bootloader_to}" \
396 --from="${OUTPUT_DIR}"/boot \
397 --vmlinuz="${OUTPUT_DIR}"/boot/vmlinuz \
398 --usb_disk="${usb_disk}" \
399 ${bootloader_to_flags} \
400 $kernel_part
401
402 if [[ "${ARCH}" == "arm" ]]; then
403 sudo dd bs=1 conv=notrunc if="${bootloader_to}" \
404 of="${OUTPUT_DIR}/${image_name}"
405 sudo rm "${bootloader_to}"
406 fi
407
408 trap - EXIT
409 ${SCRIPTS_DIR}/mount_gpt_image.sh -u -r "${ROOT_FS_DIR}" \
410 -s "${STATEFUL_FS_DIR}"
411 } 310 }
412 311
413 # Modifies an existing image to add development packages 312 # Modifies an existing image to add development packages
414 update_dev_packages() { 313 update_dev_packages() {
415 local image_name=$1 314 local image_name=$1
416 315
417 echo "Adding developer packages to ${image_name}" 316 echo "Adding developer packages to ${image_name}"
418 317
419 trap "mount_gpt_cleanup" EXIT 318 trap "mount_gpt_cleanup" EXIT
420 319
(...skipping 234 matching lines...) Expand 10 before | Expand all | Expand 10 after
655 if [[ ${FLAGS_enable_rootfs_verification} -eq ${FLAGS_TRUE} ]]; then 554 if [[ ${FLAGS_enable_rootfs_verification} -eq ${FLAGS_TRUE} ]]; then
656 enable_rootfs_verification="--enable_rootfs_verification" 555 enable_rootfs_verification="--enable_rootfs_verification"
657 fi 556 fi
658 557
659 ${SCRIPTS_DIR}/create_legacy_bootloader_templates.sh \ 558 ${SCRIPTS_DIR}/create_legacy_bootloader_templates.sh \
660 --arch=${ARCH} \ 559 --arch=${ARCH} \
661 --to="${ROOT_FS_DIR}"/boot \ 560 --to="${ROOT_FS_DIR}"/boot \
662 --install \ 561 --install \
663 ${enable_rootfs_verification} 562 ${enable_rootfs_verification}
664 563
665 # Create a working copy so we don't need the rootfs mounted
666 sudo mkdir -p "${OUTPUT_DIR}"/boot
667 # This will include any built files dropped in /boot as well.
668 # Like the current vmlinuz.
669 sudo cp -r "${ROOT_FS_DIR}"/boot/. "${OUTPUT_DIR}"/boot/
670 sudo chmod -R a+r "${OUTPUT_DIR}"/boot/
671
672 # Don't test the factory install shim. 564 # Don't test the factory install shim.
673 if [[ ${FLAGS_factory_install} -eq ${FLAGS_FALSE} ]] ; then 565 if [[ ${FLAGS_factory_install} -eq ${FLAGS_FALSE} ]] ; then
674 # Check that the image has been correctly created. 566 # Check that the image has been correctly created.
675 "${SCRIPTS_DIR}/test_image" \ 567 "${SCRIPTS_DIR}/test_image" \
676 --root="${ROOT_FS_DIR}" \ 568 --root="${ROOT_FS_DIR}" \
677 --target="${ARCH}" 569 --target="${ARCH}"
678 fi 570 fi
679 571
680 # Clean up symlinks so they work on a running target rooted at "/". 572 # Clean up symlinks so they work on a running target rooted at "/".
681 # Here development packages are rooted at /usr/local. However, do not 573 # Here development packages are rooted at /usr/local. However, do not
682 # create /usr/local or /var on host (already exist on target). 574 # create /usr/local or /var on host (already exist on target).
683 setup_symlinks_on_root "/usr/local" "/var" "${STATEFUL_FS_DIR}" 575 setup_symlinks_on_root "/usr/local" "/var" "${STATEFUL_FS_DIR}"
684 576
685 # make_image_bootable will clobber vmlinuz.image for x86. 577 # cros_make_image_bootable will clobber vmlinuz.image for x86.
686 # Until then, just copy the kernel to vmlinuz.image. It is 578 # Until then, just copy the kernel to vmlinuz.image. It is
687 # expected in build_gpt.sh and needed by ARM until it supports the 579 # expected in build_gpt.sh and needed by ARM until it supports the
688 # full, signed kernel partition format. 580 # full, signed kernel partition format.
689 cp "${ROOT_FS_DIR}/boot/vmlinuz" "${OUTPUT_DIR}/vmlinuz.image" 581 cp "${ROOT_FS_DIR}/boot/vmlinuz" "${OUTPUT_DIR}/vmlinuz.image"
690 582
691 # Create an empty esp image to be updated in by update_bootloaders.sh. 583 # Create an empty esp image to be updated in by update_bootloaders.sh.
692 ${SCRIPTS_DIR}/create_esp.sh --to="${ESP_FS_IMG}" 584 ${SCRIPTS_DIR}/create_esp.sh --to="${ESP_FS_IMG}"
693 585
694 cleanup 586 cleanup
695 587
(...skipping 17 matching lines...) Expand all
713 mkdir -p "${STATEFUL_FS_DIR}" 605 mkdir -p "${STATEFUL_FS_DIR}"
714 mkdir -p "${OEM_FS_DIR}" 606 mkdir -p "${OEM_FS_DIR}"
715 mkdir -p "${ESP_FS_DIR}" 607 mkdir -p "${ESP_FS_DIR}"
716 608
717 # Preserve old images by copying them forward for --preserve. 609 # Preserve old images by copying them forward for --preserve.
718 if [[ $FLAGS_preserve -eq ${FLAGS_TRUE} ]] ; then 610 if [[ $FLAGS_preserve -eq ${FLAGS_TRUE} ]] ; then
719 if [[ -f ${PREVIOUS_DIR}/${PRISTINE_IMAGE_NAME} ]] ; then 611 if [[ -f ${PREVIOUS_DIR}/${PRISTINE_IMAGE_NAME} ]] ; then
720 # Copy forward pristine image, and associated files 612 # Copy forward pristine image, and associated files
721 cp ${PREVIOUS_DIR}/*.sh ${PREVIOUS_DIR}/config.txt ${OUTPUT_DIR} 613 cp ${PREVIOUS_DIR}/*.sh ${PREVIOUS_DIR}/config.txt ${OUTPUT_DIR}
722 cp ${PREVIOUS_DIR}/${PRISTINE_IMAGE_NAME} ${OUTPUT_DIR} 614 cp ${PREVIOUS_DIR}/${PRISTINE_IMAGE_NAME} ${OUTPUT_DIR}
723 cp -r ${PREVIOUS_DIR}/boot ${OUTPUT_DIR}/boot
724 615
725 # Copy forward the developer image, if we already copied forward the base. 616 # Copy forward the developer image, if we already copied forward the base.
726 if [[ ${FLAGS_withdev} -eq ${FLAGS_TRUE} ]] && \ 617 if [[ ${FLAGS_withdev} -eq ${FLAGS_TRUE} ]] && \
727 [[ -f ${PREVIOUS_DIR}/${DEVELOPER_IMAGE_NAME} ]] ; then 618 [[ -f ${PREVIOUS_DIR}/${DEVELOPER_IMAGE_NAME} ]] ; then
728 cp ${PREVIOUS_DIR}/${DEVELOPER_IMAGE_NAME} ${OUTPUT_DIR} 619 cp ${PREVIOUS_DIR}/${DEVELOPER_IMAGE_NAME} ${OUTPUT_DIR}
729 fi 620 fi
730 fi 621 fi
731 fi 622 fi
732 623
624 # Create the boot.desc file which stores the build-time configuration
625 # information needed for making the image bootable after creation with
626 # cros_make_image_bootable.
627 create_boot_desc
628
733 if [[ -f ${PRISTINE_IMG} ]] ; then 629 if [[ -f ${PRISTINE_IMG} ]] ; then
734 update_base_packages ${PRISTINE_IMAGE_NAME} 630 update_base_packages ${PRISTINE_IMAGE_NAME}
735 else 631 else
736 create_base_image ${PRISTINE_IMAGE_NAME} 632 create_base_image ${PRISTINE_IMAGE_NAME}
737 fi 633 fi
738 make_image_bootable ${PRISTINE_IMAGE_NAME} 634 ${SCRIPTS_DIR}/bin/cros_make_image_bootable "${OUTPUT_DIR}" \
635 "${PRISTINE_IMAGE_NAME}"
739 636
740 # FIXME: only signing things for x86 right now. 637 # FIXME: only signing things for x86 right now.
741 if [[ "${ARCH}" = "x86" ]]; then 638 if [[ "${ARCH}" = "x86" ]]; then
742 # Verify the final image. 639 # Verify the final image.
743 load_kernel_test "${OUTPUT_DIR}/${PRISTINE_IMAGE_NAME}" \ 640 load_kernel_test "${OUTPUT_DIR}/${PRISTINE_IMAGE_NAME}" \
744 "${DEVKEYSDIR}/recovery_key.vbpubk" 641 "${DEVKEYSDIR}/recovery_key.vbpubk"
745 fi 642 fi
746 643
747 # Create a developer image based on the chromium os base image. 644 # Create a developer image based on the chromium os base image.
748 if [ "${FLAGS_withdev}" -eq "${FLAGS_TRUE}" ] ; then 645 if [ "${FLAGS_withdev}" -eq "${FLAGS_TRUE}" ] ; then
749 if [[ ! -f ${DEVELOPER_IMG} ]] ; then 646 if [[ ! -f ${DEVELOPER_IMG} ]] ; then
750 echo "Creating developer image from base image ${PRISTINE_IMAGE_NAME}" 647 echo "Creating developer image from base image ${PRISTINE_IMAGE_NAME}"
751 cp ${PRISTINE_IMG} ${DEVELOPER_IMG} 648 cp ${PRISTINE_IMG} ${DEVELOPER_IMG}
752 fi 649 fi
753 650
754 update_dev_packages ${DEVELOPER_IMAGE_NAME} 651 update_dev_packages ${DEVELOPER_IMAGE_NAME}
755 make_image_bootable ${DEVELOPER_IMAGE_NAME} 652 ${SCRIPTS_DIR}/bin/cros_make_image_bootable "${OUTPUT_DIR}" \
653 "${DEVELOPER_IMAGE_NAME}"
756 fi 654 fi
757 655
758 # Clean up temporary files. 656 # Clean up temporary files.
759 rm -f "${ROOT_FS_IMG}" "${STATEFUL_FS_IMG}" "${OUTPUT_DIR}/vmlinuz.image" \ 657 rm -f "${ROOT_FS_IMG}" "${STATEFUL_FS_IMG}" "${OUTPUT_DIR}/vmlinuz.image" \
760 "${ESP_FS_IMG}" "${OEM_FS_IMG}" "${OUTPUT_DIR}/vmlinuz_hd.vblock" 658 "${ESP_FS_IMG}" "${OEM_FS_IMG}" "${OUTPUT_DIR}/vmlinuz_hd.vblock"
761 rmdir "${ROOT_FS_DIR}" "${STATEFUL_FS_DIR}" "${OEM_FS_DIR}" "${ESP_FS_DIR}" 659 rmdir "${ROOT_FS_DIR}" "${STATEFUL_FS_DIR}" "${OEM_FS_DIR}" "${ESP_FS_DIR}"
762 660
763 echo "Done. Image created in ${OUTPUT_DIR}" 661 echo "Done. Image created in ${OUTPUT_DIR}"
764 echo "Chromium OS image created as ${PRISTINE_IMAGE_NAME}" 662 echo "Chromium OS image created as ${PRISTINE_IMAGE_NAME}"
765 if [ "${FLAGS_withdev}" -eq "${FLAGS_TRUE}" ]; then 663 if [ "${FLAGS_withdev}" -eq "${FLAGS_TRUE}" ]; then
766 echo "Developer image created as ${DEVELOPER_IMAGE_NAME}" 664 echo "Developer image created as ${DEVELOPER_IMAGE_NAME}"
767 fi 665 fi
768 666
769 print_time_elapsed 667 print_time_elapsed
770 668
771 echo "To copy to USB keyfob, OUTSIDE the chroot, do something like:" 669 echo "To copy to USB keyfob, OUTSIDE the chroot, do something like:"
772 echo " ./image_to_usb.sh --from=${OUTSIDE_OUTPUT_DIR} --to=/dev/sdX" 670 echo " ./image_to_usb.sh --from=${OUTSIDE_OUTPUT_DIR} --to=/dev/sdX"
773 echo "To convert to VMWare image, INSIDE the chroot, do something like:" 671 echo "To convert to VMWare image, INSIDE the chroot, do something like:"
774 echo " ./image_to_vm.sh --from=${OUTSIDE_OUTPUT_DIR}" 672 echo " ./image_to_vm.sh --from=${OUTSIDE_OUTPUT_DIR}"
775 echo "from the scripts directory where you entered the chroot." 673 echo "from the scripts directory where you entered the chroot."
OLDNEW
« no previous file with comments | « bin/cros_make_image_bootable ('k') | mod_image_for_dev_recovery.sh » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698