Provided by: autopkgtest_3.20.4ubuntu1_all bug

NAME

       adt-virt-qemu - autopkgtest virtualisation server using QEMU

SYNOPSIS

       adt-virt-qemu [options] image [ro-image ...]

DESCRIPTION

       adt-virt-qemu provides an autopkgtest virtualisation server using QEMU.

       Normally adt-virt-qemu will be invoked by adt-run.

       You  always  need  to  specify  at  least one QEMU VM image. If your VM needs more disks, you can specify
       arbitrarily many additional images which will be added in order.

       adt-virt-qemu does not modify the given images, but will instead  create  a  temporary  overlay  for  the
       primary image, and add all other images as read-only.

       The  first image without the overlay is always added as an additional read-only hard drive, which will be
       available for tests as /dev/baseimage.  This allows tests that require  nested  VMs  to  reuse  the  same
       image.  Be  aware  that  /dev/baseimage will not be accessible between calling adt-reboot-prepare and the
       next boot, thus make sure to stop accessing it before.

REQUIREMENTS

       adt-virt-qemu assumes that you have already prepared a suitable Debian based  QEMU  image  (see  BUILDING
       IMAGES  below  for  how to create them). But you can use any VM which has python3 or python installed and
       either

       *   opens a root shell on ttyS1, or

       *   has a serial console on ttyS0 where you can log  in  (getty  or  similar)  with  specified  user  and
           password. This will then be used to start a root shell on ttyS1, to reduce this to the first case and
           to not assume that ttyS0 stays operational throughout the whole test.

OPTIONS

       -u user | --user=user

              User name for running tests that don't require root privileges.

              If  the  VM  is  not  already  prepared  to start a root shell on ttyS1 this will be also used for
              logging in on ttyS0. If this is not root, it must be able to run sudo without a password to become
              root for that purpose.

       -p password | --password=password
              Password for above user for logging into the VM on ttyS0. This is  necessary  if  the  VM  is  not
              already prepared to start a root shell on ttyS1.

       -q command | --qemu-command=command
              QEMU command to run. This defaults to the qemu-system-* that matches your system architecture.

       -o dir | --overlay-dir=dir
              Directory where the temporary image overlay for the primary image is created. By default this will
              happen  in  a  work  directory in /tmp (or $TMPDIR), but you can use this to e. g. ensure that the
              overlay is placed on a tmpfs if your /tmp directory is not on tmpfs. This  will  greatly  increase
              the speed.

       -c num | --cpus=num"
              Number of (virtual) CPUs in the VM. Default is 1.

       --ram-size=MiB
              VM RAM size in MiB. Default is 1024, i. e. 1 GiB.

       --show-boot
              Show boot messages from serial console.

       -d | --debug
              Enable debugging output.

       --qemu-options=arguments
              Pass through arguments to QEMU command; e. g. --qemu-options='-readconfig qemu.cfg'

CONFIGURATION FILES

       If  you  use lots of options or images, you can put parts of, or the whole command line into a text file,
       with one line per option. E. g. you can create a file sid-desktop.cfg with contents like

              -utestuser
              -ps3kr1t
              --ram-size=4096
              /home/bob/autopkgtest/sid-desktop.img

       and then run

              adt-run [...] --- adt-virt-qemu @sid-desktop.cfg

       The contents of the configuration file will be expanded in-place as if you would have given its  contents
       on  the  command  line. Please ensure that you don't place spaces between short options and their values,
       they would become a part of the argument value.

INPUT, OUTPUT AND EXIT STATUS

       The  behaviour  of  adt-virt-qemu  is  as  described  by  the  AutomatedTesting   virtualisation   regime
       specification.

NOTES

       adt-run  does  not run apt-get update at the start of a package build, which can cause a build failure if
       you are using a development series template. You will need to run apt-get update in the template yourself
       (e. g. using --setup-commands).

       If the --qemu-command option has not been specified and no  custom  CPU  type  was  selected  in  --qemu-
       options,  adt-virt-qemu  will  try  to  enable  nested  KVM support by default on x86_64 platforms if the
       hardware supports this. To fully enable this, one needs to additionally set some module parameters on the
       host, by creating a file /etc/modprobe.d/nested_kvm.conf with the contents

       options kvm_intel nested=1
       options kvm_amd   nested=1

       and rebooting or reloading the KVM modules. It is still possible to  use  QEMU  in  tests  without  this,
       albeit without hardware acceleration. On Ubuntu systems these module options are typically already set.

BUILDING IMAGES

   Debian
       For Debian you can use vmdebootstrap(8) to build a suitable image. E. g. for unstable:

              vmdebootstrap --verbose --serial-console --distribution=sid \
                 --customize=/usr/share/autopkgtest/setup-commands/setup-testbed \
                 --user=adt/adt --size=10000000000 --grub --image=adt-sid.raw
              qemu-img convert -O qcow2 adt-sid.raw  adt-sid.img
              rm adt-sid.raw

       vmdebootstrap  can  only  create  a raw format image; it is recommended to convert it to qcow2 as that is
       much smaller (in the order of 700 MB for qcow2 vs. the 10  GB  as  specified  above)  and  also  supports
       additional  features  such  as  snapshots  or  compression.  You  can  run  that command with setting the
       environment variable ADT_APT_PROXY to a proxy which will be used by apt in  the  VM.  If  you  have  apt-
       cacher-ng installed on the host, this will be used automatically; otherwise you can run e. g.

              ADT_APT_PROXY=http://10.0.2.2:8080 vmdebootstrap [...]

   Ubuntu
       For  Ubuntu,  autopkgtest  provides  adt-buildvm-ubuntu-cloud(1)  to build a VM based on the Ubuntu cloud
       images. To create an image for the current development series and the i386 architecture:

              adt-buildvm-ubuntu-cloud -v -a i386

       This will produce e. g.  adt-trusty-i386-cloud.img.

EXAMPLE

       Run the tests of the libpng source package, using an Ubuntu cloud image:

              adt-run libpng --- adt-virt-qemu adt-trusty-i386-cloud.img

SEE ALSO

       adt-run(1),   adt-virt-schroot(1),   adt-virt-lxc(1),   adt-buildvm-ubuntu-cloud(1),    vmdebootstrap(8),
       /usr/share/doc/autopkgtest/.

AUTHORS AND COPYRIGHT

       adt-virt-qemu was written by Martin Pitt <martin.pitt@ubuntu.com>

       This manpage is part of autopkgtest, a tool for testing Debian binary packages.  autopkgtest is Copyright
       (C) 2006-2014 Canonical Ltd and others.

       See /usr/share/doc/autopkgtest/CREDITS for the list of contributors and full copying conditions.

Linux Programmer's Manual                             2014                                      adt-virt-qemu(1)