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

Unified Diff: build_image

Issue 2867030: Added empty ext3 filesystem initialization for OEM partner partition. (Closed) Base URL: ssh://git@chromiumos-git//crosutils.git
Patch Set: Created 10 years, 6 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 side-by-side diff with in-line comments
Download patch
« no previous file with comments | « build_gpt.sh ('k') | no next file » | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: build_image
diff --git a/build_image b/build_image
index 078ca2d02d54986e60a4caa5fae08bcd49f0a84b..f6f30eaa7bd23e3509742c2068dcfa4e88f84250 100755
--- a/build_image
+++ b/build_image
@@ -112,11 +112,15 @@ ROOT_FS_DIR="${OUTPUT_DIR}/rootfs"
STATEFUL_FS_IMG="${OUTPUT_DIR}/stateful_partition.image"
STATEFUL_FS_DIR="${OUTPUT_DIR}/stateful_partition"
+OEM_FS_IMG="${OUTPUT_DIR}/partner_partition.image"
+OEM_FS_DIR="${OUTPUT_DIR}/partner_partition"
+
ESP_FS_IMG=${OUTPUT_DIR}/esp.image
ESP_FS_DIR=${OUTPUT_DIR}/esp
LOOP_DEV=
STATEFUL_LOOP_DEV=
+OEM_LOOP_DEV=
ESP_LOOP_DEV=
# ${DEV_IMAGE_ROOT} specifies the location of where developer packages will
@@ -185,6 +189,11 @@ cleanup_stateful_fs_loop() {
sudo umount -d "${STATEFUL_FS_DIR}"
}
+cleanup_oem_fs_loop() {
+ sudo umount -d "${OEM_FS_DIR}"
+}
+
+
cleanup_esp_loop() {
sudo umount -d "${ESP_FS_DIR}"
}
@@ -197,6 +206,10 @@ cleanup() {
cleanup_stateful_fs_loop
fi
+ if [[ -n "${OEM_LOOP_DEV}" ]]; then
+ cleanup_oem_fs_loop
+ fi
+
if [[ -n "${LOOP_DEV}" ]]; then
cleanup_rootfs_loop
fi
@@ -350,14 +363,32 @@ create_base_image() {
exit 1
fi
dd if=/dev/zero of="${STATEFUL_FS_IMG}" bs=1 count=1 seek=$((ROOT_SIZE_BYTES - 1))
+
+ # Tune and mount the stateful partition.
+ UUID=$(uuidgen)
+ DISK_LABEL="C-STATE"
sudo losetup "${STATEFUL_LOOP_DEV}" "${STATEFUL_FS_IMG}"
sudo mkfs.ext3 "${STATEFUL_LOOP_DEV}"
- sudo tune2fs -L "C-STATE" -U "${UUID}" -c 0 -i 0 \
- "${STATEFUL_LOOP_DEV}"
-
- # Mount the stateful partition.
+ sudo tune2fs -L "${DISK_LABEL}" -U "${UUID}" -c 0 -i 0 "${STATEFUL_LOOP_DEV}"
sudo mount "${STATEFUL_LOOP_DEV}" "${STATEFUL_FS_DIR}"
+ # Create OEM partner partition.
+ OEM_LOOP_DEV=$(sudo losetup -f)
+ if [ -z "${OEM_LOOP_DEV}" ] ; then
+ echo "No free loop device. Free up a loop device or reboot. exiting. "
+ exit 1
+ fi
+ OEM_SIZE_BYTES=$((1024 * 1024 * 16))
+ dd if=/dev/zero of="${OEM_FS_IMG}" bs=1 count=1 seek=$((OEM_SIZE_BYTES - 1))
+
+ # Tune and mount OEM partner partition.
+ UUID=$(uuidgen)
+ DISK_LABEL="C-OEM"
+ sudo losetup "${OEM_LOOP_DEV}" "${OEM_FS_IMG}"
+ sudo mkfs.ext3 "${OEM_LOOP_DEV}"
+ sudo tune2fs -L "${DISK_LABEL}" -U "${UUID}" -c 0 -i 0 "${OEM_LOOP_DEV}"
+ sudo mount "${OEM_LOOP_DEV}" "${OEM_FS_DIR}"
+
# Turn root file system into bootable image.
if [[ "${ARCH}" = "x86" ]]; then
# Setup extlinux configuration.
@@ -574,6 +605,7 @@ EOF
mkdir -p "${OUTPUT_DIR}"
mkdir -p "${ROOT_FS_DIR}"
mkdir -p "${STATEFUL_FS_DIR}"
+mkdir -p "${OEM_FS_DIR}"
mkdir -p "${ESP_FS_DIR}"
create_base_image ${OUTPUT_DIR}/${PRISTINE_IMAGE_NAME}
@@ -603,8 +635,9 @@ fi
# Clean up temporary files.
rm -f "${ROOT_FS_IMG}" "${STATEFUL_FS_IMG}" "${OUTPUT_DIR}/vmlinuz.image" \
"${ESP_FS_IMG}" "${OUTPUT_DIR}/data4_sign8.keyblock" \
- "${OUTPUT_DIR}/key_alg4.vbpubk" "${OUTPUT_DIR}/key_alg8.vbpubk"
-rmdir "${ROOT_FS_DIR}" "${STATEFUL_FS_DIR}" "${ESP_FS_DIR}"
+ "${OUTPUT_DIR}/key_alg4.vbpubk" "${OUTPUT_DIR}/key_alg8.vbpubk" \
+ "${OEM_FS_IMG}"
+rmdir "${ROOT_FS_DIR}" "${STATEFUL_FS_DIR}" "${OEM_FS_DIR}" "${ESP_FS_DIR}"
echo "Done. Image created in ${OUTPUT_DIR}"
echo "Chromium OS image created as ${PRISTINE_IMAGE_NAME}"
« no previous file with comments | « build_gpt.sh ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698