[fx run] add //.ssh/authorized_keys before booting
This enables SSH into qemu instances that have networking, without having to
bake SSH keys into the build artifacts.
Change-Id: I19aa146cd752622ab79018180cfdc06aee1f2a7c
diff --git a/devshell/run b/devshell/run
index b5ef78d..7dd07fd 100755
--- a/devshell/run
+++ b/devshell/run
@@ -14,23 +14,28 @@
# Construction of a qcow image prevents qemu from writing back to the
# build-produced image file, which could cause timestamp issues with that file.
-qcowdir="$(mktemp -d)"
-if [[ ! -d "${qcowdir}" ]]; then
+# Construction of the new ZBI adds //.ssh/authorized_keys for SSH access.
+imgdir="$(mktemp -d)"
+if [[ ! -d "${imgdir}" ]]; then
echo >&2 "Failed to create temporary directory"
exit 1
fi
-qimg="${qcowdir}/fuchsia.qcow2"
-trap 'rm "${qimg}" && rmdir "${qcowdir}"' EXIT
+qimg="${imgdir}/fuchsia.qcow2"
+kernelzbi="${imgdir}/fuchsia-ssh.zbi"
+trap 'rm "${qimg}" "${kernelzbi}" && rmdir "${imgdir}"' EXIT
"${qemu_dir}/qemu-img" create -f qcow2 -b "${FUCHSIA_BUILD_DIR}/${IMAGE_FVM_RAW}" \
"${qimg}"
+"${ZIRCON_TOOLS_DIR}/zbi" -o "${kernelzbi}" "${FUCHSIA_BUILD_DIR}/${IMAGE_ZIRCONA_ZBI}" \
+ --entry "data/ssh/authorized_keys=${FUCHSIA_DIR}/.ssh/authorized_keys"
+
"${FUCHSIA_DIR}/zircon/scripts/run-zircon" \
-a "${FUCHSIA_ARCH}" \
-q "${qemu_dir}" \
-G 3 \
-t "${FUCHSIA_BUILD_DIR}/${IMAGE_QEMU_KERNEL_RAW}" \
- -z "${FUCHSIA_BUILD_DIR}/${IMAGE_ZIRCONA_ZBI}" \
+ -z "${kernelzbi}" \
-d \
-D "${qimg}" \
--diskfmt="qcow2" \