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

Unified Diff: src/scripts/build_image

Issue 2377003: Make build_image create a bootable kernel partition. (Closed) Base URL: ssh://git@chromiumos-git/chromeos
Patch Set: Created 10 years, 7 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 | « no previous file | no next file » | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: src/scripts/build_image
diff --git a/src/scripts/build_image b/src/scripts/build_image
index 734b8efcfc0d1b706063118513324cb441e2b93e..17afa28d2e5d5a33c13dc4e2430ec09d7e401de8 100755
--- a/src/scripts/build_image
+++ b/src/scripts/build_image
@@ -123,6 +123,9 @@ if [[ -e "$OUTPUT_DIR" ]]; then
fi
fi
+# Be verbose to help debug failures.
+set -x
+
# Create the output directory.
mkdir -p "$OUTPUT_DIR"
@@ -387,11 +390,6 @@ sudo INSTALL_MASK="$INSTALL_MASK" emerge-${BOARD} \
--root="$ROOT_FS_DIR" --root-deps=rdeps \
--usepkgonly chromeos $EMERGE_JOBS
-# Extract the kernel from the root filesystem for use by the GPT image. Legacy
-# BIOS will use the kernel in the rootfs (via syslinux), Chrome OS BIOS will
-# use the kernel partition.
-sudo cp -f "${ROOT_FS_DIR}/boot/vmlinuz" "${OUTPUT_DIR}/vmlinuz.image"
-
# Create EFI System Partition to boot stock EFI BIOS (but not ChromeOS EFI
# BIOS). We only need this for x86, but it's simpler and safer to keep the disk
# images the same for both x86 and ARM.
@@ -428,6 +426,43 @@ menuentry "local image B" {
EOF
+# Legacy BIOS will use the kernel in the rootfs (via syslinux), as will
+# standard EFI BIOS (via grub, from the EFI System Partition). Chrome OS BIOS
+# will use a separate signed kernel partition, which we'll create now.
+# FIXME: remove serial output, debugging messages
+cat <<'EOF' > "${OUTPUT_DIR}/config.txt"
+earlyprintk=serial,ttyS0,115200
+console=ttyS0,115200
+init=/sbin/init
+add_efi_memmap
+boot=local
+rootwait
+root=/dev/sd%D%P
+ro
+noresume
+noswap
+i915.modeset=1
+loglevel=7
+Hi_Mom
+EOF
+
+# FIXME: We need to specify the real keys and certs here!
+SIG_DIR="${SRC_ROOT}/platform/vboot_reference/tests/testkeys"
+
+# Create the kernel partition image.
+kernel_utility --generate \
+ --firmware_key "${SIG_DIR}/key_rsa4096.pem" \
+ --kernel_key "${SIG_DIR}/key_rsa1024.pem" \
+ --kernel_key_pub "${SIG_DIR}/key_rsa1024.keyb" \
+ --firmware_sign_algorithm 8 \
+ --kernel_sign_algorithm 2 \
+ --kernel_key_version 1 \
+ --kernel_version 1 \
+ --config "${OUTPUT_DIR}/config.txt" \
+ --bootloader /lib64/bootstub/bootstub.efi \
+ --vmlinuz "${ROOT_FS_DIR}/boot/vmlinuz" \
+ --out "${OUTPUT_DIR}/vmlinuz.image"
+
# Perform any customizations on the root file system that are needed.
"${SCRIPTS_DIR}/customize_rootfs" \
--root="$ROOT_FS_DIR" \
@@ -477,6 +512,9 @@ OUTSIDE_OUTPUT_DIR="../build/images/${FLAGS_board}/${IMAGE_SUBDIR}"
[ "$FLAGS_withdev" -eq "$FLAGS_TRUE" ] && create_developer_image
trap - EXIT
+# be quiet again
+set +x
+
echo "Done. Image created in ${OUTPUT_DIR}"
echo "Chromium OS image created as $PRISTINE_IMAGE_NAME"
if [ "$FLAGS_withdev" -eq "$FLAGS_TRUE" ]; then
« no previous file with comments | « no previous file | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698