summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorKhem Raj <raj.khem@gmail.com>2020-09-23 18:25:06 -0700
committerRichard Purdie <richard.purdie@linuxfoundation.org>2020-09-24 22:32:49 +0100
commitb6b985a22393931adef3412e726832848c41ce64 (patch)
treec107412df4fdfee0dcf9afd8f3a11a9519362922
parent6890a23a18e9c470c27854ec38e47030fdb2f0ed (diff)
downloadpoky-b6b985a22393931adef3412e726832848c41ce64.tar.gz
qemuboot: Add QB_RNG variable
RNG passthru has been enabled on all qemu machines but its being added to each one of them, with this patch its turned into QB variables which defaults to host passthru, yet it can be overridden if needed via machine or config metadata if needed. (From OE-Core rev: 26dd24506ef36088e17f999ce5489dc4b72194e8) Signed-off-by: Khem Raj <raj.khem@gmail.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
-rw-r--r--meta/classes/qemuboot.bbclass4
-rw-r--r--meta/conf/machine/include/qemuboot-mips.inc2
-rw-r--r--meta/conf/machine/include/qemuboot-x86.inc2
-rw-r--r--meta/conf/machine/include/riscv/qemuriscv.inc3
-rw-r--r--meta/conf/machine/qemuarm.conf2
-rw-r--r--meta/conf/machine/qemuarm64.conf2
-rw-r--r--meta/conf/machine/qemuarmv5.conf2
-rw-r--r--meta/conf/machine/qemuppc.conf2
-rwxr-xr-xscripts/runqemu2
9 files changed, 5 insertions, 16 deletions
diff --git a/meta/classes/qemuboot.bbclass b/meta/classes/qemuboot.bbclass
index d8f62ef6ea..824676216e 100644
--- a/meta/classes/qemuboot.bbclass
+++ b/meta/classes/qemuboot.bbclass
@@ -29,6 +29,9 @@
29# QB_AUDIO_OPT: qemu audio option, e.g., "-soundhw ac97,es1370", used 29# QB_AUDIO_OPT: qemu audio option, e.g., "-soundhw ac97,es1370", used
30# when QB_AUDIO_DRV is set. 30# when QB_AUDIO_DRV is set.
31# 31#
32# QB_RNG: Pass-through for host random number generator, it can speedup boot
33# in system mode, where system is experiencing entropy starvation
34#
32# QB_KERNEL_ROOT: kernel's root, e.g., /dev/vda 35# QB_KERNEL_ROOT: kernel's root, e.g., /dev/vda
33# 36#
34# QB_NETWORK_DEVICE: network device, e.g., "-device virtio-net-pci,netdev=net0,mac=@MAC@", 37# QB_NETWORK_DEVICE: network device, e.g., "-device virtio-net-pci,netdev=net0,mac=@MAC@",
@@ -77,6 +80,7 @@ QB_MEM ?= "-m 256"
77QB_SERIAL_OPT ?= "-serial mon:stdio -serial null" 80QB_SERIAL_OPT ?= "-serial mon:stdio -serial null"
78QB_DEFAULT_KERNEL ?= "${KERNEL_IMAGETYPE}" 81QB_DEFAULT_KERNEL ?= "${KERNEL_IMAGETYPE}"
79QB_DEFAULT_FSTYPE ?= "ext4" 82QB_DEFAULT_FSTYPE ?= "ext4"
83QB_RNG ?= "-object rng-random,filename=/dev/urandom,id=rng0 -device virtio-rng-pci,rng=rng0"
80QB_OPT_APPEND ?= "" 84QB_OPT_APPEND ?= ""
81QB_NETWORK_DEVICE ?= "-device virtio-net-pci,netdev=net0,mac=@MAC@" 85QB_NETWORK_DEVICE ?= "-device virtio-net-pci,netdev=net0,mac=@MAC@"
82QB_CMDLINE_IP_SLIRP ?= "ip=dhcp" 86QB_CMDLINE_IP_SLIRP ?= "ip=dhcp"
diff --git a/meta/conf/machine/include/qemuboot-mips.inc b/meta/conf/machine/include/qemuboot-mips.inc
index e99bade2e3..230f032c53 100644
--- a/meta/conf/machine/include/qemuboot-mips.inc
+++ b/meta/conf/machine/include/qemuboot-mips.inc
@@ -3,8 +3,6 @@ IMAGE_CLASSES += "qemuboot"
3QB_MACHINE = "-machine malta" 3QB_MACHINE = "-machine malta"
4QB_KERNEL_CMDLINE_APPEND = "console=ttyS0 console=tty" 4QB_KERNEL_CMDLINE_APPEND = "console=ttyS0 console=tty"
5QB_OPT_APPEND = "-usb -device usb-tablet" 5QB_OPT_APPEND = "-usb -device usb-tablet"
6# Add the 'virtio-rng-pci' device otherwise the guest may run out of entropy
7QB_OPT_APPEND += "-object rng-random,filename=/dev/urandom,id=rng0 -device virtio-rng-pci,rng=rng0"
8 6
9# For graphics to work we need to define the VGA device as well as the necessary USB devices 7# For graphics to work we need to define the VGA device as well as the necessary USB devices
10QB_OPT_APPEND += "-vga std" 8QB_OPT_APPEND += "-vga std"
diff --git a/meta/conf/machine/include/qemuboot-x86.inc b/meta/conf/machine/include/qemuboot-x86.inc
index ccc6dcd3bf..2a4760c717 100644
--- a/meta/conf/machine/include/qemuboot-x86.inc
+++ b/meta/conf/machine/include/qemuboot-x86.inc
@@ -10,6 +10,4 @@ QB_AUDIO_DRV = "alsa"
10QB_AUDIO_OPT = "-soundhw ac97,es1370" 10QB_AUDIO_OPT = "-soundhw ac97,es1370"
11QB_KERNEL_CMDLINE_APPEND = "oprofile.timer=1" 11QB_KERNEL_CMDLINE_APPEND = "oprofile.timer=1"
12QB_OPT_APPEND = "-usb -device usb-tablet" 12QB_OPT_APPEND = "-usb -device usb-tablet"
13# Add the 'virtio-rng-pci' device otherwise the guest may run out of entropy
14QB_OPT_APPEND += "-object rng-random,filename=/dev/urandom,id=rng0 -device virtio-rng-pci,rng=rng0"
15 13
diff --git a/meta/conf/machine/include/riscv/qemuriscv.inc b/meta/conf/machine/include/riscv/qemuriscv.inc
index 759c8a196e..0e88c91aa6 100644
--- a/meta/conf/machine/include/riscv/qemuriscv.inc
+++ b/meta/conf/machine/include/riscv/qemuriscv.inc
@@ -33,6 +33,3 @@ QB_NETWORK_DEVICE = "-device virtio-net-device,netdev=net0,mac=@MAC@"
33QB_ROOTFS_OPT = "-drive id=disk0,file=@ROOTFS@,if=none,format=raw -device virtio-blk-device,drive=disk0" 33QB_ROOTFS_OPT = "-drive id=disk0,file=@ROOTFS@,if=none,format=raw -device virtio-blk-device,drive=disk0"
34QB_SERIAL_OPT = "-device virtio-serial-device -chardev null,id=virtcon -device virtconsole,chardev=virtcon" 34QB_SERIAL_OPT = "-device virtio-serial-device -chardev null,id=virtcon -device virtconsole,chardev=virtcon"
35QB_TCPSERIAL_OPT = " -device virtio-serial-device -chardev socket,id=virtcon,port=@PORT@,host=127.0.0.1 -device virtconsole,chardev=virtcon" 35QB_TCPSERIAL_OPT = " -device virtio-serial-device -chardev socket,id=virtcon,port=@PORT@,host=127.0.0.1 -device virtconsole,chardev=virtcon"
36# Add the 'virtio-rng-pci' device otherwise the guest may run out of entropy
37QB_OPT_APPEND = " -object rng-random,filename=/dev/urandom,id=rng0 -device virtio-rng-device,rng=rng0"
38
diff --git a/meta/conf/machine/qemuarm.conf b/meta/conf/machine/qemuarm.conf
index 3364dcf042..702b850cbb 100644
--- a/meta/conf/machine/qemuarm.conf
+++ b/meta/conf/machine/qemuarm.conf
@@ -21,8 +21,6 @@ QB_KERNEL_CMDLINE_APPEND = "console=ttyAMA0"
21# For graphics to work we need to define the VGA device as well as the necessary USB devices 21# For graphics to work we need to define the VGA device as well as the necessary USB devices
22QB_OPT_APPEND = "-device VGA,edid=on" 22QB_OPT_APPEND = "-device VGA,edid=on"
23QB_OPT_APPEND += "-device qemu-xhci -device usb-tablet -device usb-kbd" 23QB_OPT_APPEND += "-device qemu-xhci -device usb-tablet -device usb-kbd"
24# Add the virtio RNG
25QB_OPT_APPEND += "-object rng-random,filename=/dev/urandom,id=rng0 -device virtio-rng-pci,rng=rng0"
26# Virtio Networking support 24# Virtio Networking support
27QB_TAP_OPT = "-netdev tap,id=net0,ifname=@TAP@,script=no,downscript=no" 25QB_TAP_OPT = "-netdev tap,id=net0,ifname=@TAP@,script=no,downscript=no"
28QB_NETWORK_DEVICE = "-device virtio-net-device,netdev=net0,mac=@MAC@" 26QB_NETWORK_DEVICE = "-device virtio-net-device,netdev=net0,mac=@MAC@"
diff --git a/meta/conf/machine/qemuarm64.conf b/meta/conf/machine/qemuarm64.conf
index fdd464d708..2f61eb0aed 100644
--- a/meta/conf/machine/qemuarm64.conf
+++ b/meta/conf/machine/qemuarm64.conf
@@ -22,8 +22,6 @@ QB_KERNEL_CMDLINE_APPEND = "console=ttyAMA0"
22# For graphics to work we need to define the VGA device as well as the necessary USB devices 22# For graphics to work we need to define the VGA device as well as the necessary USB devices
23QB_OPT_APPEND = "-device VGA,edid=on" 23QB_OPT_APPEND = "-device VGA,edid=on"
24QB_OPT_APPEND += "-device qemu-xhci -device usb-tablet -device usb-kbd" 24QB_OPT_APPEND += "-device qemu-xhci -device usb-tablet -device usb-kbd"
25# Add the 'virtio-rng-pci' device otherwise the guest may run out of entropy
26QB_OPT_APPEND += "-object rng-random,filename=/dev/urandom,id=rng0 -device virtio-rng-pci,rng=rng0"
27# Virtio Networking support 25# Virtio Networking support
28QB_TAP_OPT = "-netdev tap,id=net0,ifname=@TAP@,script=no,downscript=no" 26QB_TAP_OPT = "-netdev tap,id=net0,ifname=@TAP@,script=no,downscript=no"
29QB_NETWORK_DEVICE = "-device virtio-net-device,netdev=net0,mac=@MAC@" 27QB_NETWORK_DEVICE = "-device virtio-net-device,netdev=net0,mac=@MAC@"
diff --git a/meta/conf/machine/qemuarmv5.conf b/meta/conf/machine/qemuarmv5.conf
index 48e83f13e1..7e8c9e1fa6 100644
--- a/meta/conf/machine/qemuarmv5.conf
+++ b/meta/conf/machine/qemuarmv5.conf
@@ -14,8 +14,6 @@ QB_SYSTEM_NAME = "qemu-system-arm"
14QB_MACHINE = "-machine versatilepb" 14QB_MACHINE = "-machine versatilepb"
15QB_KERNEL_CMDLINE_APPEND = "console=ttyAMA0,115200 console=tty" 15QB_KERNEL_CMDLINE_APPEND = "console=ttyAMA0,115200 console=tty"
16QB_OPT_APPEND = "-usb -device usb-tablet" 16QB_OPT_APPEND = "-usb -device usb-tablet"
17# Add the 'virtio-rng-pci' device otherwise the guest may run out of entropy
18QB_OPT_APPEND += "-object rng-random,filename=/dev/urandom,id=rng0 -device virtio-rng-pci,rng=rng0"
19PREFERRED_VERSION_linux-yocto ??= "5.8%" 17PREFERRED_VERSION_linux-yocto ??= "5.8%"
20QB_DTB = "${@oe.utils.version_less_or_equal('PREFERRED_VERSION_linux-yocto', '4.7', '', 'zImage-versatile-pb.dtb', d)}" 18QB_DTB = "${@oe.utils.version_less_or_equal('PREFERRED_VERSION_linux-yocto', '4.7', '', 'zImage-versatile-pb.dtb', d)}"
21 19
diff --git a/meta/conf/machine/qemuppc.conf b/meta/conf/machine/qemuppc.conf
index 9733b5e85b..a84594f335 100644
--- a/meta/conf/machine/qemuppc.conf
+++ b/meta/conf/machine/qemuppc.conf
@@ -17,6 +17,4 @@ QB_MACHINE = "-machine mac99"
17QB_CPU = "-cpu G4" 17QB_CPU = "-cpu G4"
18QB_KERNEL_CMDLINE_APPEND = "console=tty console=ttyS0" 18QB_KERNEL_CMDLINE_APPEND = "console=tty console=ttyS0"
19QB_OPT_APPEND = "-usb -device usb-tablet" 19QB_OPT_APPEND = "-usb -device usb-tablet"
20# Add the 'virtio-rng-pci' device otherwise the guest may run out of entropy
21QB_OPT_APPEND += "-object rng-random,filename=/dev/urandom,id=rng0 -device virtio-rng-pci,rng=rng0"
22QB_TAP_OPT = "-netdev tap,id=net0,ifname=@TAP@,script=no,downscript=no" 20QB_TAP_OPT = "-netdev tap,id=net0,ifname=@TAP@,script=no,downscript=no"
diff --git a/scripts/runqemu b/scripts/runqemu
index e62d869c20..e5e66f3453 100755
--- a/scripts/runqemu
+++ b/scripts/runqemu
@@ -1336,7 +1336,7 @@ class BaseConfig(object):
1336 if not os.access(qemu_bin, os.X_OK): 1336 if not os.access(qemu_bin, os.X_OK):
1337 raise OEPathError("No QEMU binary '%s' could be found" % qemu_bin) 1337 raise OEPathError("No QEMU binary '%s' could be found" % qemu_bin)
1338 1338
1339 self.qemu_opt = "%s %s %s %s" % (qemu_bin, self.get('NETWORK_CMD'), self.get('ROOTFS_OPTIONS'), self.get('QB_OPT_APPEND')) 1339 self.qemu_opt = "%s %s %s %s %s" % (qemu_bin, self.get('NETWORK_CMD'), self.get('QB_RNG'), self.get('ROOTFS_OPTIONS'), self.get('QB_OPT_APPEND'))
1340 1340
1341 for ovmf in self.ovmf_bios: 1341 for ovmf in self.ovmf_bios:
1342 format = ovmf.rsplit('.', 1)[-1] 1342 format = ovmf.rsplit('.', 1)[-1]