diff options
| author | Dmitry Vyukov <dvyukov@google.com> | 2018-05-17 14:50:18 +0200 |
|---|---|---|
| committer | Dmitry Vyukov <dvyukov@google.com> | 2018-05-17 14:50:18 +0200 |
| commit | 6595937c34ea6357fb93780c3b5548ffc238526d (patch) | |
| tree | 288cbe0e09209d53549766976eab52dccbd72461 /pkg/kernel/kernel.go | |
| parent | 9c84f7c395e74f3b5aafcad217e9bb8b574fb290 (diff) | |
tools/create-gce-image.sh: support both nbd and loop
Pass target OS/arch and VM type to kernel.CreateImage.
Use nbd for gce and loop for qemu VM type.
Diffstat (limited to 'pkg/kernel/kernel.go')
| -rw-r--r-- | pkg/kernel/kernel.go | 10 |
1 files changed, 9 insertions, 1 deletions
diff --git a/pkg/kernel/kernel.go b/pkg/kernel/kernel.go index fce4c1b1f..21612f10a 100644 --- a/pkg/kernel/kernel.go +++ b/pkg/kernel/kernel.go @@ -70,7 +70,14 @@ func Clean(dir string) error { // If cmdlineFile is not empty, contents of the file are appended to the kernel command line. // If sysctlFile is not empty, contents of the file are appended to the image /etc/sysctl.conf. // Produces image and root ssh key in the specified files. -func CreateImage(kernelDir, userspaceDir, cmdlineFile, sysctlFile, image, sshkey string) error { +func CreateImage(targetOS, targetArch, vmType, kernelDir, userspaceDir, cmdlineFile, sysctlFile, + image, sshkey string) error { + if targetOS != "linux" || targetArch != "amd64" { + return fmt.Errorf("only linux/amd64 is supported") + } + if vmType != "qemu" && vmType != "gce" { + return fmt.Errorf("images can be built only for qemu/gce machines") + } tempDir, err := ioutil.TempDir("", "syz-build") if err != nil { return err @@ -85,6 +92,7 @@ func CreateImage(kernelDir, userspaceDir, cmdlineFile, sysctlFile, image, sshkey cmd.Dir = tempDir cmd.Env = append([]string{}, os.Environ()...) cmd.Env = append(cmd.Env, + "SYZ_VM_TYPE="+vmType, "SYZ_CMDLINE_FILE="+osutil.Abs(cmdlineFile), "SYZ_SYSCTL_FILE="+osutil.Abs(sysctlFile), ) |
