47d6d43cb594ef37f5e8e533d0c9994b395e9f72
[qemu-sanity-check.git] / qemu-sanity-check.pod.in
1 =encoding utf8
2
3 =head1 NAME
4
5 qemu-sanity-check - run a simple sanity check on qemu and the Linux kernel
6
7 =head1 SUMMARY
8
9 qemu-sanity-check [options]
10
11 =head1 DESCRIPTION
12
13 B<qemu-sanity-check> is a short shell script that test-boots a Linux
14 kernel under qemu, making sure it boots up to userspace.  The idea is
15 to test the Linux kernel and/or qemu to make sure they are working.
16
17 You can use the command on its own:
18
19  qemu-sanity-check
20
21 In this case, the script will look for a suitable qemu binary on the
22 C<$PATH> and the latest Linux kernel in C</boot> and try to boot that
23 kernel on that qemu.
24
25 You can also specify a qemu binary or a Linux kernel (either or both
26 options can be omitted):
27
28  qemu-sanity-check --qemu=/path/to/qemu --kernel=/path/to/vmlinuz
29
30 =head2 KVM
31
32 KVM (C<kvm> or C<qemu-kvm>) can be used in place of qemu.
33
34 =head2 KERNEL DRIVERS
35
36 No kernel modules or special drivers are required except as noted
37 below.  The test uses an initramfs containing a static binary, so the
38 kernel is B<not> required to locate block devices, use virtio, mount
39 filesystems, etc.
40
41 The kernel B<must> support only the following, compiled in (not as
42 modules):
43
44 =over 4
45
46 =item *
47
48 A serial port (usually: C<CONFIG_SERIAL_8250=y>)
49
50 =item *
51
52 Initrd/initramfs (C<CONFIG_BLK_DEV_INITRD=y>)
53
54 =back
55
56 =head1 OPTIONS
57
58 =over 4
59
60 =item B<--help>
61
62 Display short help message and exit.
63
64 =item B<--accel>=kvm
65
66 =item B<--accel>=tcg
67
68 =item B<--accel>=kvm:tcg
69
70 This sets the C<-machine accel=...> parameter which is passed to
71 qemu.
72
73 If not set, then C<kvm:tcg> is the default, which means to try to use
74 KVM (hardware-assisted virtualization), and fall back to software
75 emulation if KVM is not possible.
76
77 Other typical values of this parameter are: C<tcg>, which means to
78 force software emulation.  C<kvm>, which means to force KVM and fail
79 if KVM is unavailable.
80
81 =item B<-i> INITRD
82
83 =item B<--initrd>=INITRD
84
85 Use the initramfs image named C<INITRD> instead of the default.
86
87 =item B<-k> VMLINUZ
88
89 =item B<--kernel>=VMLINUZ
90
91 Use the kernel image C<VMLINUZ> instead of searching for the latest
92 kernel installed in C</boot>.
93
94 =item B<-q> QEMU
95
96 =item B<--qemu>=QEMU
97
98 Use the qemu (or KVM) binary C<QEMU> instead of searching C<$PATH> for
99 a suitable binary.
100
101 =item B<-t> TIMEOUT
102
103 =item B<--timeout>=TIMEOUT
104
105 Specify a timeout instead of the default which is C<10m> (10 minutes).
106
107 The syntax for the C<TIMEOUT> is described in full in the man page for
108 L<timeout(1)>.
109
110 =item B<-V>
111
112 =item B<--version>
113
114 Display version and exit.
115
116 =back
117
118 =head1 EXIT STATUS
119
120 The exit status is 0 if the Linux kernel booted as far as userspace
121 under qemu; or if the I<--help> or I<--version> options were used.
122
123 The exit status is 1 if the kernel boot failed under qemu.
124
125 The exit status is 2 if the script itself failed (eg. incorrect
126 command line options were used, a suitable kernel could not be found).
127
128 =head1 FILES
129
130 =over 4
131
132 =item B<@libdir@/qemu-sanity-check/initrd>
133
134 The default location for the small initramfs image that is used to
135 test that userspace has been reached.
136
137 =back
138
139 =head1 SEE ALSO
140
141 L<http://qemu.org>,
142 L<http://kernel.org>
143
144 =head1 AUTHORS
145
146 Richard W.M. Jones <rjones@redhat.com>
147
148 =head1 COPYRIGHT
149
150 (C) Copyright 2013 Red Hat Inc.
151
152 This program is free software; you can redistribute it and/or modify
153 it under the terms of the GNU General Public License as published by
154 the Free Software Foundation; either version 2 of the License, or
155 (at your option) any later version.
156
157 This program is distributed in the hope that it will be useful,
158 but WITHOUT ANY WARRANTY; without even the implied warranty of
159 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
160 GNU General Public License for more details.
161
162 You should have received a copy of the GNU General Public License along
163 with this program; if not, write to the Free Software Foundation, Inc.,
164 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.