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 |