• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1# Configuration
2
3The operation of the syzkaller `syz-manager` process is governed by a configuration file, passed at
4invocation time with the `-config` option.  This configuration can be based on the
5[example](/pkg/mgrconfig/testdata/qemu.cfg); the file is in JSON format with the
6following keys in its top-level object:
7
8 - `http`: URL that will display information about the running `syz-manager` process.
9 - `email_addrs`: Optional list of email addresses to receive notifications when bugs are encountered for the first time.
10   Mailx is the only supported mailer. Please set it up prior to using this function.
11 - `workdir`: Location of a working directory for the `syz-manager` process. Outputs here include:
12     - `<workdir>/crashes/*`: crash output files (see [Crash Reports](#crash-reports))
13     - `<workdir>/corpus.db`: corpus with interesting programs
14     - `<workdir>/instance-x`: per VM instance temporary files
15 - `syzkaller`: Location of the `syzkaller` checkout, `syz-manager` will look
16   for binaries in `bin` subdir (does not have to be `syzkaller` checkout as
17   long as it preserves `bin` dir structure)
18 - `kernel_obj`: Directory with object files (e.g. `vmlinux` for linux)
19   (used for report symbolization and coverage reports, optional).
20 - `procs`: Number of parallel test processes in each VM (4 or 8 would be a reasonable number).
21 - `image`: Location of the disk image file for the QEMU instance; a copy of this file is passed as the
22   `-hda` option to `qemu-system-x86_64`.
23 - `sshkey`: Location (on the host machine) of a root SSH identity to use for communicating with
24   the virtual machine.
25 - `sandbox` : Sandboxing mode, the following modes are supported:
26     - "none": don't do anything special (has false positives, e.g. due to killing init), default
27     - "setuid": impersonate into user nobody (65534)
28     - "namespace": use namespaces to drop privileges
29       (requires a kernel built with `CONFIG_NAMESPACES`, `CONFIG_UTS_NS`,
30       `CONFIG_USER_NS`, `CONFIG_PID_NS` and `CONFIG_NET_NS`)
31 - `enable_syscalls`: List of syscalls to test (optional).
32 - `disable_syscalls`: List of system calls that should be treated as disabled (optional).
33 - `suppressions`: List of regexps for known bugs.
34 - `type`: Type of virtual machine to use, e.g. `qemu` or `adb`.
35 - `vm`: object with VM-type-specific parameters; for example, for `qemu` type paramters include:
36     - `count`: Number of VMs to run in parallel.
37     - `kernel`: Location of the `bzImage` file for the kernel to be tested;
38       this is passed as the `-kernel` option to `qemu-system-x86_64`.
39     - `cmdline`: Additional command line options for the booting kernel, for example `root=/dev/sda1`.
40     - `cpu`: Number of CPUs to simulate in the VM (*not currently used*).
41     - `mem`: Amount of memory (in MiB) for the VM; this is passed as the `-m` option to `qemu-system-x86_64`.
42
43See also [config.go](/pkg/mgrconfig/mgrconfig.go) for all config parameters.
44