summaryrefslogtreecommitdiffstats
path: root/scripts
diff options
context:
space:
mode:
authorPhil Wise <phil@advancedtelematic.com>2017-11-16 11:01:25 +0100
committerPhil Wise <phil@advancedtelematic.com>2017-11-16 11:07:49 +0100
commit24e5a6d45886365cecce74c2c9aa1cfd8c0da69a (patch)
tree2c296be453e262a347d4914d2359e7e298c1f3e2 /scripts
parent0b1fd4b3c456a64e40a7ff1125f005c0b72eafd8 (diff)
downloadmeta-updater-24e5a6d45886365cecce74c2c9aa1cfd8c0da69a.tar.gz
Autodetect KVM
Autodetect KVM by using the 'kvm-ok' command line tool. This has two benefits: Firstly, it improves the UX of run-qemu-ota when working on machines without KVM (e.g. AWS). Previously, people had to use the --no-kvm option in these cases. Secondary, it makes oe-selftest usable on machines without KVM. Our tests call run-qemu-ota, and we want to able to run them on machines without KVM.
Diffstat (limited to 'scripts')
-rw-r--r--scripts/qemucommand.py11
-rwxr-xr-xscripts/run-qemu-ota6
2 files changed, 15 insertions, 2 deletions
diff --git a/scripts/qemucommand.py b/scripts/qemucommand.py
index a75ffb6..82a9540 100644
--- a/scripts/qemucommand.py
+++ b/scripts/qemucommand.py
@@ -2,6 +2,7 @@ from os.path import exists, join, realpath, abspath
2from os import listdir 2from os import listdir
3import random 3import random
4import socket 4import socket
5from subprocess import check_output, CalledProcessError
5 6
6EXTENSIONS = { 7EXTENSIONS = {
7 'intel-corei7-64': 'wic', 8 'intel-corei7-64': 'wic',
@@ -67,7 +68,15 @@ class QemuCommand(object):
67 self.mac_address = random_mac() 68 self.mac_address = random_mac()
68 self.serial_port = find_local_port(8990) 69 self.serial_port = find_local_port(8990)
69 self.ssh_port = find_local_port(2222) 70 self.ssh_port = find_local_port(2222)
70 self.kvm = not args.no_kvm 71 if args.kvm is None:
72 # Autodetect KVM using 'kvm-ok'
73 try:
74 check_output(['kvm-ok'])
75 self.kvm = True
76 except CalledProcessError:
77 self.kvm = False
78 else:
79 self.kvm = args.kvm
71 self.gui = not args.no_gui 80 self.gui = not args.no_gui
72 self.gdb = args.gdb 81 self.gdb = args.gdb
73 self.pcap = args.pcap 82 self.pcap = args.pcap
diff --git a/scripts/run-qemu-ota b/scripts/run-qemu-ota
index 8e25197..56e4fbc 100755
--- a/scripts/run-qemu-ota
+++ b/scripts/run-qemu-ota
@@ -21,7 +21,11 @@ def main():
21 'OSTREE_BOOTLOADER = "grub" and OVMF.fd firmware to be installed (try "apt install ovmf")', 21 'OSTREE_BOOTLOADER = "grub" and OVMF.fd firmware to be installed (try "apt install ovmf")',
22 action='store_true') 22 action='store_true')
23 parser.add_argument('--machine', default=None, help="Target MACHINE") 23 parser.add_argument('--machine', default=None, help="Target MACHINE")
24 parser.add_argument('--no-kvm', help='Disable KVM in QEMU', action='store_true') 24 kvm_group = parser.add_argument_group()
25 kvm_group.add_argument('--force-kvm', help='Force use of KVM (default is to autodetect)',
26 dest='kvm', action='store_true', default=None)
27 kvm_group.add_argument('--no-kvm', help='Disable KVM in QEMU',
28 dest='kvm', action='store_false')
25 parser.add_argument('--no-gui', help='Disable GUI', action='store_true') 29 parser.add_argument('--no-gui', help='Disable GUI', action='store_true')
26 parser.add_argument('--gdb', help='Export gdbserver port 2159 from the image', action='store_true') 30 parser.add_argument('--gdb', help='Export gdbserver port 2159 from the image', action='store_true')
27 parser.add_argument('--pcap', default=None, help='Dump all network traffic') 31 parser.add_argument('--pcap', default=None, help='Dump all network traffic')