From 7bebc919789e3696e14eb1df6c45dfd70eb20c2b Mon Sep 17 00:00:00 2001 From: Ondrej Kubik Date: Thu, 16 Jun 2022 17:26:11 +0100 Subject: [PATCH] image: test qemu option Signed-off-by: Ondrej Kubik --- image/preseed/preseed_linux.go | 16 +++++++++++++++- 1 file changed, 15 insertions(+), 1 deletion(-) diff --git a/image/preseed/preseed_linux.go b/image/preseed/preseed_linux.go index e20ebde7e44..75d0084da4e 100644 --- a/image/preseed/preseed_linux.go +++ b/image/preseed/preseed_linux.go @@ -531,7 +531,21 @@ func runPreseedMode(preseedChroot string, targetSnapd *targetSnapdInfo) error { } func runUC20PreseedMode(opts *preseedOpts) error { - cmd := exec.Command("chroot", opts.PreseedChrootDir, "/usr/lib/snapd/snapd") + qemu_path := os.Getenv("SNAP_PRESEED_QEMU") + // const qemu = { + // "arm": "qemu-arm-static", + // "arm64": "qemu-aarch64-static" + // } + // TODO: determine if we need to run with qemu + var cmd *exec.Cmd + if qemu_path == "" { + cmd = exec.Command("chroot", opts.PreseedChrootDir, "/usr/lib/snapd/snapd") + } else { + // we need to copy qemu static binary into the chroot + cpCmd := exec.Command("cp", qemu_path, filepath.Join(opts.PreseedChrootDir, "tmp")) + cpCmd.Run() + cmd = exec.Command("chroot", opts.PreseedChrootDir, filepath.Join("/tmp", filepath.Base(qemu_path)), "/usr/lib/snapd/snapd") + } cmd.Env = os.Environ() cmd.Env = append(cmd.Env, "SNAPD_PRESEED=1") cmd.Stderr = Stderr