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 convert the output of build_image.sh to a usb image. | 7 # Script to convert the output of build_image.sh to a usb image. |
8 | 8 |
9 # Load common constants. This should be the first executable line. | 9 # Load common constants. This should be the first executable line. |
10 # The path to common.sh should be relative to your script's location. | 10 # The path to common.sh should be relative to your script's location. |
11 . "$(dirname "$0")/common.sh" | 11 . "$(dirname "$0")/common.sh" |
12 | 12 |
13 # Load functions and constants for chromeos-install | 13 # Load functions and constants for chromeos-install |
14 . "$(dirname "$0")/chromeos-common.sh" | 14 . "$(dirname "$0")/chromeos-common.sh" |
15 | 15 |
16 get_default_board | 16 get_default_board |
17 | 17 |
18 # Flags | 18 # Flags |
19 DEFINE_string board "${DEFAULT_BOARD}" "Board for which the image was built" | 19 DEFINE_string board "${DEFAULT_BOARD}" "Board for which the image was built" |
20 DEFINE_string from "" \ | 20 DEFINE_string from "" \ |
21 "Directory containing rootfs.image and mbr.image" | 21 "Directory containing chromiumos_image.bin" |
22 DEFINE_string to "" "${DEFAULT_TO_HELP}" | 22 DEFINE_string to "" "${DEFAULT_TO_HELP}" |
23 DEFINE_boolean yes ${FLAGS_FALSE} "Answer yes to all prompts" "y" | 23 DEFINE_boolean yes ${FLAGS_FALSE} "Answer yes to all prompts" "y" |
24 DEFINE_boolean install_autotest ${FLAGS_FALSE} \ | 24 DEFINE_boolean install_autotest ${FLAGS_FALSE} \ |
25 "Whether to install autotest to the stateful partition." | 25 "Whether to install autotest to the stateful partition." |
26 DEFINE_boolean copy_kernel ${FLAGS_FALSE} \ | 26 DEFINE_boolean copy_kernel ${FLAGS_FALSE} \ |
27 "Copy the kernel to the fourth partition." | 27 "Copy the kernel to the fourth partition." |
28 DEFINE_boolean test_image "${FLAGS_FALSE}" \ | 28 DEFINE_boolean test_image "${FLAGS_FALSE}" \ |
29 "Uses test image if available, otherwise creates one as rootfs_test.image." | 29 "Copies normal image to chromiumos_test_image.bin, modifies it for test." |
30 DEFINE_string build_root "/build" \ | 30 DEFINE_string build_root "/build" \ |
31 "The root location for board sysroots." | 31 "The root location for board sysroots." |
32 | 32 |
33 # Parse command line | 33 # Parse command line |
34 FLAGS "$@" || exit 1 | 34 FLAGS "$@" || exit 1 |
35 eval set -- "${FLAGS_ARGV}" | 35 eval set -- "${FLAGS_ARGV}" |
36 | 36 |
37 # Inside the chroot, so output to usb.img in the same dir as the other | 37 # Inside the chroot, so output to usb.img in the same dir as the other |
38 # Script can be run either inside or outside the chroot. | 38 # Script can be run either inside or outside the chroot. |
39 if [ ${INSIDE_CHROOT} -eq 1 ] | 39 if [ ${INSIDE_CHROOT} -eq 1 ] |
(...skipping 53 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
93 # Copy it. | 93 # Copy it. |
94 echo "Creating test image from original..." | 94 echo "Creating test image from original..." |
95 cp -f "${SRC_IMAGE}" "${FLAGS_from}/chromiumos_test_image.bin" | 95 cp -f "${SRC_IMAGE}" "${FLAGS_from}/chromiumos_test_image.bin" |
96 # Use it. | 96 # Use it. |
97 SRC_IMAGE="${FLAGS_from}/chromiumos_test_image.bin" | 97 SRC_IMAGE="${FLAGS_from}/chromiumos_test_image.bin" |
98 # Modify it. | 98 # Modify it. |
99 "${SCRIPTS_DIR}/mod_image_for_test.sh" --image "${SRC_IMAGE}" | 99 "${SCRIPTS_DIR}/mod_image_for_test.sh" --image "${SRC_IMAGE}" |
100 fi | 100 fi |
101 | 101 |
102 STATEFUL_DIR="${FLAGS_from}/stateful_partition" | 102 STATEFUL_DIR="${FLAGS_from}/stateful_partition" |
| 103 mkdir -p "${STATEFUL_DIR}" |
103 | 104 |
104 function do_cleanup { | 105 function do_cleanup { |
105 echo "Cleaning loopback devices: ${STATEFUL_LOOP_DEV}" | 106 echo "Cleaning loopback devices: ${STATEFUL_LOOP_DEV}" |
106 if [ "${STATEFUL_LOOP_DEV}" != "" ]; then | 107 if [ "${STATEFUL_LOOP_DEV}" != "" ]; then |
107 sudo umount "${STATEFUL_DIR}" | 108 sudo umount "${STATEFUL_DIR}" |
108 sudo losetup -d "${STATEFUL_LOOP_DEV}" | 109 sudo losetup -d "${STATEFUL_LOOP_DEV}" |
| 110 rmdir "${STATEFUL_DIR}" |
109 echo "Cleaned" | 111 echo "Cleaned" |
110 fi | 112 fi |
111 } | 113 } |
112 | 114 |
113 if [ ${FLAGS_install_autotest} -eq ${FLAGS_TRUE} ] ; then | 115 if [ ${FLAGS_install_autotest} -eq ${FLAGS_TRUE} ] ; then |
114 echo "Detecting autotest at ${AUTOTEST_SRC}" | 116 echo "Detecting autotest at ${AUTOTEST_SRC}" |
115 if [ -d ${AUTOTEST_SRC} ] | 117 if [ -d ${AUTOTEST_SRC} ] |
116 then | 118 then |
117 # Figure out how to loop mount the stateful partition. It's always | 119 # Figure out how to loop mount the stateful partition. It's always |
118 # partition 1 on the disk image. | 120 # partition 1 on the disk image. |
(...skipping 18 matching lines...) Expand all Loading... |
137 sudo mkdir -p "${stateful_root}${autotest_client}" | 139 sudo mkdir -p "${stateful_root}${autotest_client}" |
138 | 140 |
139 sudo cp -fpru ${AUTOTEST_SRC}/client/* \ | 141 sudo cp -fpru ${AUTOTEST_SRC}/client/* \ |
140 "${stateful_root}/${autotest_client}" | 142 "${stateful_root}/${autotest_client}" |
141 sudo chmod 755 "${stateful_root}/${autotest_client}" | 143 sudo chmod 755 "${stateful_root}/${autotest_client}" |
142 sudo chown -R 1000:1000 "${stateful_root}/${autotest_client}" | 144 sudo chown -R 1000:1000 "${stateful_root}/${autotest_client}" |
143 | 145 |
144 sudo umount ${STATEFUL_DIR} | 146 sudo umount ${STATEFUL_DIR} |
145 sudo losetup -d "${stateful_loop_dev}" | 147 sudo losetup -d "${stateful_loop_dev}" |
146 trap - INT TERM EXIT | 148 trap - INT TERM EXIT |
| 149 rmdir "${STATEFUL_DIR}" |
147 else | 150 else |
148 echo "/usr/local/autotest under ${DEFAULT_CHROOT_DIR} is not installed." | 151 echo "/usr/local/autotest under ${DEFAULT_CHROOT_DIR} is not installed." |
149 echo "Please call make_autotest.sh inside chroot first." | 152 echo "Please call make_autotest.sh inside chroot first." |
150 exit -1 | 153 exit -1 |
151 fi | 154 fi |
152 fi | 155 fi |
153 | 156 |
154 | 157 |
155 # Let's do it. | 158 # Let's do it. |
156 if [ -b "${FLAGS_to}" ] | 159 if [ -b "${FLAGS_to}" ] |
(...skipping 47 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
204 echo " sudo dd if=${FLAGS_to} of=/dev/sdb bs=4M" | 207 echo " sudo dd if=${FLAGS_to} of=/dev/sdb bs=4M" |
205 echo "where /dev/sdb is the entire keyfob." | 208 echo "where /dev/sdb is the entire keyfob." |
206 if [ ${INSIDE_CHROOT} -eq 1 ] | 209 if [ ${INSIDE_CHROOT} -eq 1 ] |
207 then | 210 then |
208 example=$(basename "${FLAGS_to}") | 211 example=$(basename "${FLAGS_to}") |
209 echo "NOTE: Since you are currently inside the chroot, and you'll need to" | 212 echo "NOTE: Since you are currently inside the chroot, and you'll need to" |
210 echo "run dd outside the chroot, the path to the USB image will be" | 213 echo "run dd outside the chroot, the path to the USB image will be" |
211 echo "different (ex: ~/chromeos/trunk/src/build/images/SOME_DIR/$example)." | 214 echo "different (ex: ~/chromeos/trunk/src/build/images/SOME_DIR/$example)." |
212 fi | 215 fi |
213 fi | 216 fi |
OLD | NEW |