- Update to latest stable release (9.0.1).
Full list of backports here: https://lore.kernel.org/qemu-devel/1718081053.366429.1238758.nullmailer@tls.msk.ru/ A selection of them is reported here too: Update version for 9.0.1 release target/loongarch: fix a wrong print in cpu dump ui/sdl2: Allow host to power down screen virtio-gpu: fix v2 migration target/i386: fix SSE and SSE2 feature check target/i386: fix xsave.flat from kvm-unit-tests disas/riscv: Decode all of the pmpcfg and pmpaddr CSRs riscv, gdbstub.c: fix reg_width in ricsv_gen_dynamic_vector_feature() target/riscv/kvm.c: Fix the hart bit setting of AIA target/riscv: rvzicbo: Fixup CBO extension register calculation target/riscv: do not set mtval2 for non guest-page faults target/riscv: prioritize pmp errors in raise_mmu_exception() target/riscv: rvv: Remove redudant SEW checking for vector fp narrow/widen instructions target/riscv: rvv: Check single width operator for vfncvt.rod.f.f.w target/riscv: rvv: Check single width operator for vector fp widen instructions target/riscv: rvv: Fix Zvfhmin checking for vfwcvt.f.f.v and vfncvt.f.f.w instructions target/riscv/cpu.c: fix Zvkb extension config target/riscv: Fix the element agnostic function problem target/riscv/kvm: tolerate KVM disable ext errors target/riscv/kvm: Fix exposure of Zkr hw/intc/riscv_aplic: APLICs should add child earlier than realize iotests: test NBD+TLS+iothread qio: Inherit follow_coroutine_ctx across TLS ... OBS-URL: https://build.opensuse.org/package/show/Virtualization/qemu?expand=0&rev=848
This commit is contained in:
parent
92bf160db8
commit
6f31d1a8d5
@ -1,35 +0,0 @@
|
||||
{
|
||||
"description": "SeaBIOS",
|
||||
"interface-types": [
|
||||
"bios"
|
||||
],
|
||||
"mapping": {
|
||||
"device": "memory",
|
||||
"filename": "/usr/share/qemu/bios-256k.bin"
|
||||
},
|
||||
"targets": [
|
||||
{
|
||||
"architecture": "i386",
|
||||
"machines": [
|
||||
"pc-i440fx-*",
|
||||
"pc-q35-*"
|
||||
]
|
||||
},
|
||||
{
|
||||
"architecture": "x86_64",
|
||||
"machines": [
|
||||
"pc-i440fx-*",
|
||||
"pc-q35-*"
|
||||
]
|
||||
}
|
||||
],
|
||||
"features": [
|
||||
"acpi-s3",
|
||||
"acpi-s4"
|
||||
],
|
||||
"tags": [
|
||||
"CONFIG_QEMU=y",
|
||||
"CONFIG_ROM_SIZE=256",
|
||||
"CONFIG_ATA_DMA=n"
|
||||
]
|
||||
}
|
@ -1,47 +0,0 @@
|
||||
{
|
||||
"description": "SeaBIOS",
|
||||
"interface-types": [
|
||||
"bios"
|
||||
],
|
||||
"mapping": {
|
||||
"device": "memory",
|
||||
"filename": "/usr/share/qemu/bios.bin"
|
||||
},
|
||||
"targets": [
|
||||
{
|
||||
"architecture": "i386",
|
||||
"machines": [
|
||||
"pc-i440fx-*",
|
||||
"pc-q35-*"
|
||||
]
|
||||
},
|
||||
{
|
||||
"architecture": "x86_64",
|
||||
"machines": [
|
||||
"pc-i440fx-*",
|
||||
"pc-q35-*"
|
||||
]
|
||||
}
|
||||
],
|
||||
"features": [
|
||||
"acpi-s3",
|
||||
"acpi-s4"
|
||||
],
|
||||
"tags": [
|
||||
"CONFIG_QEMU=y",
|
||||
"CONFIG_ROM_SIZE=128",
|
||||
"CONFIG_ATA_DMA=n",
|
||||
"CONFIG_BOOTSPLASH=n",
|
||||
"CONFIG_XEN=n",
|
||||
"CONFIG_USB_OHCI=n",
|
||||
"CONFIG_USB_XHCI=n",
|
||||
"CONFIG_USB_UAS=n",
|
||||
"CONFIG_SDCARD=n",
|
||||
"CONFIG_TCGBIOS=n",
|
||||
"CONFIG_MPT_SCSI=n",
|
||||
"CONFIG_PVSCSI=n",
|
||||
"CONFIG_NVME=n",
|
||||
"CONFIG_USE_SMM=n",
|
||||
"CONFIG_VGAHOOKS=n"
|
||||
]
|
||||
}
|
@ -1 +0,0 @@
|
||||
KERNEL=="kvm", MODE="0666", GROUP="kvm"
|
@ -1 +0,0 @@
|
||||
SUBSYSTEM=="virtio-ports", ATTR{name}=="org.qemu.guest_agent.0", TAG+="systemd", ENV{SYSTEMD_WANTS}+="qemu-guest-agent.service"
|
@ -1,43 +0,0 @@
|
||||
From: Dario Faggioli <dfaggioli@suse.com>
|
||||
Date: Thu, 21 Jul 2022 04:06:21 +0200
|
||||
Subject: Disable some tests that have problems in OBS
|
||||
|
||||
Git-commit: 0000000000000000000000000000000000000000
|
||||
|
||||
We are disabling the following tests:
|
||||
|
||||
qemu-system-ppc64 / display-vga-test
|
||||
|
||||
They are failing due to some memory corruption errors. We believe that
|
||||
this might be due to the combination of the compiler version and of LTO,
|
||||
and will take up the investigation within the upstream community.
|
||||
|
||||
Signed-off-by: Dario Faggioli <dfaggioli@suse.com>
|
||||
---
|
||||
tests/qtest/meson.build | 6 +++++-
|
||||
1 file changed, 5 insertions(+), 1 deletion(-)
|
||||
|
||||
diff --git a/tests/qtest/meson.build b/tests/qtest/meson.build
|
||||
index be4b30dea248d75f477cc402ce8d..06a2015232fd920170a9f503be52 100644
|
||||
--- a/tests/qtest/meson.build
|
||||
+++ b/tests/qtest/meson.build
|
||||
@@ -39,6 +39,10 @@ qtests_pci = \
|
||||
qtests_cxl = \
|
||||
(config_all_devices.has_key('CONFIG_CXL') ? ['cxl-test'] : [])
|
||||
|
||||
+# display-vga-test currently fails in OBS, for ppc64
|
||||
+qtests_pci_novga = \
|
||||
+ (config_all_devices.has_key('CONFIG_IVSHMEM_DEVICE') ? ['ivshmem-test'] : [])
|
||||
+
|
||||
qtests_i386 = \
|
||||
(slirp.found() ? ['pxe-test', 'test-netfilter'] : []) + \
|
||||
(config_host.has_key('CONFIG_POSIX') ? ['test-filter-mirror'] : []) + \
|
||||
@@ -167,7 +171,7 @@ qtests_ppc64 = \
|
||||
(slirp.found() ? ['pxe-test'] : []) + \
|
||||
(config_all_devices.has_key('CONFIG_USB_UHCI') ? ['usb-hcd-uhci-test'] : []) + \
|
||||
(config_all_devices.has_key('CONFIG_USB_XHCI_NEC') ? ['usb-hcd-xhci-test'] : []) + \
|
||||
- qtests_pci + ['migration-test', 'numa-test', 'cpu-plug-test', 'drive_del-test']
|
||||
+ qtests_pci_novga + ['migration-test', 'numa-test', 'cpu-plug-test', 'drive_del-test']
|
||||
|
||||
qtests_sh4 = (config_all_devices.has_key('CONFIG_ISA_TESTDEV') ? ['endianness-test'] : [])
|
||||
qtests_sh4eb = (config_all_devices.has_key('CONFIG_ISA_TESTDEV') ? ['endianness-test'] : [])
|
@ -1,97 +0,0 @@
|
||||
From: =?UTF-8?q?Martin=20Li=C5=A1ka?= <Martin Liška>
|
||||
Date: Tue, 22 Mar 2022 11:40:17 +0100
|
||||
Subject: Ignore spurious GCC 12 warning
|
||||
MIME-Version: 1.0
|
||||
Content-Type: text/plain; charset=UTF-8
|
||||
Content-Transfer-Encoding: 8bit
|
||||
|
||||
Git-commit: 0000000000000000000000000000000000000000
|
||||
References: bsc#1197018
|
||||
|
||||
Building with GCC 12 fails producing errors. This is an example (but
|
||||
there are others):
|
||||
|
||||
[ 1051s] Sdk/C/LzmaEnc.c: In function 'LzmaEnc_CodeOneMemBlock':
|
||||
[ 1051s] Sdk/C/LzmaEnc.c:2641:19: error: storing the address of local
|
||||
variable 'outStream' in '*p.rc.outStream' [-Werror=dangling-pointer=]
|
||||
[ 1051s] 2641 | p->rc.outStream = &outStream.vt;
|
||||
[ 1051s] | ~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~
|
||||
[ 1051s] Sdk/C/LzmaEnc.c:2624:28: note: 'outStream' declared here
|
||||
[ 1051s] 2624 | CLzmaEnc_SeqOutStreamBuf outStream;
|
||||
[ 1051s] | ^~~~~~~~~
|
||||
[ 1051s] Sdk/C/LzmaEnc.c:2624:28: note: 'pp' declared here
|
||||
|
||||
Which is a false positive reported by GCC compiler:
|
||||
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=98503
|
||||
|
||||
Work it around by silencing the warning.
|
||||
|
||||
Signed-off-by: Martin Liška <martin.liska@suse.com>
|
||||
Signed-off-by: Dario Faggioli <dfaggioli@suse.com>
|
||||
---
|
||||
BaseTools/Source/C/DevicePath/DevicePathUtilities.c | 4 ++++
|
||||
BaseTools/Source/C/GenFfs/GenFfs.c | 4 ++++
|
||||
BaseTools/Source/C/GenSec/GenSec.c | 4 ++++
|
||||
BaseTools/Source/C/LzmaCompress/Sdk/C/LzmaEnc.c | 4 ++++
|
||||
4 files changed, 16 insertions(+)
|
||||
|
||||
diff --git a/roms/edk2/BaseTools/Source/C/DevicePath/DevicePathUtilities.c b/roms/edk2/BaseTools/Source/C/DevicePath/DevicePathUtilities.c
|
||||
index 2ffefa8ceeeff9a1d0504ad71918..c9fb4329843a8fc34e596b506571 100644
|
||||
--- a/roms/edk2/BaseTools/Source/C/DevicePath/DevicePathUtilities.c
|
||||
+++ b/roms/edk2/BaseTools/Source/C/DevicePath/DevicePathUtilities.c
|
||||
@@ -16,6 +16,10 @@
|
||||
#include "UefiDevicePathLib.h"
|
||||
#include <Protocol/DevicePathUtilities.h>
|
||||
|
||||
+#if __GNUC__ >= 12
|
||||
+# pragma GCC diagnostic ignored "-Wstringop-overflow"
|
||||
+#endif
|
||||
+
|
||||
//
|
||||
// Template for an end-of-device path node.
|
||||
//
|
||||
diff --git a/roms/edk2/BaseTools/Source/C/GenFfs/GenFfs.c b/roms/edk2/BaseTools/Source/C/GenFfs/GenFfs.c
|
||||
index 949025c333251bc5776159a6c535..be55a529743494677f8515906c6c 100644
|
||||
--- a/roms/edk2/BaseTools/Source/C/GenFfs/GenFfs.c
|
||||
+++ b/roms/edk2/BaseTools/Source/C/GenFfs/GenFfs.c
|
||||
@@ -36,6 +36,10 @@ SPDX-License-Identifier: BSD-2-Clause-Patent
|
||||
#define UTILITY_MAJOR_VERSION 0
|
||||
#define UTILITY_MINOR_VERSION 1
|
||||
|
||||
+#if __GNUC__ >= 12
|
||||
+# pragma GCC diagnostic ignored "-Wuse-after-free"
|
||||
+#endif
|
||||
+
|
||||
STATIC CHAR8 *mFfsFileType[] = {
|
||||
NULL, // 0x00
|
||||
"EFI_FV_FILETYPE_RAW", // 0x01
|
||||
diff --git a/roms/edk2/BaseTools/Source/C/GenSec/GenSec.c b/roms/edk2/BaseTools/Source/C/GenSec/GenSec.c
|
||||
index d54a4f9e0a7d67b7c8494ab37011..fb40ad36584c1cd53cc7ca4a9d4f 100644
|
||||
--- a/roms/edk2/BaseTools/Source/C/GenSec/GenSec.c
|
||||
+++ b/roms/edk2/BaseTools/Source/C/GenSec/GenSec.c
|
||||
@@ -37,6 +37,10 @@ SPDX-License-Identifier: BSD-2-Clause-Patent
|
||||
#define UTILITY_MAJOR_VERSION 0
|
||||
#define UTILITY_MINOR_VERSION 1
|
||||
|
||||
+#if __GNUC__ >= 12
|
||||
+# pragma GCC diagnostic ignored "-Wuse-after-free"
|
||||
+#endif
|
||||
+
|
||||
STATIC CHAR8 *mSectionTypeName[] = {
|
||||
NULL, // 0x00 - reserved
|
||||
"EFI_SECTION_COMPRESSION", // 0x01
|
||||
diff --git a/roms/edk2/BaseTools/Source/C/LzmaCompress/Sdk/C/LzmaEnc.c b/roms/edk2/BaseTools/Source/C/LzmaCompress/Sdk/C/LzmaEnc.c
|
||||
index 4e9b499f8d80dc4d6bc13515e794..ab9b7cc34f69bceb74c454ce5032 100644
|
||||
--- a/roms/edk2/BaseTools/Source/C/LzmaCompress/Sdk/C/LzmaEnc.c
|
||||
+++ b/roms/edk2/BaseTools/Source/C/LzmaCompress/Sdk/C/LzmaEnc.c
|
||||
@@ -40,6 +40,10 @@ static unsigned g_STAT_OFFSET = 0;
|
||||
|
||||
#define REP_LEN_COUNT 64
|
||||
|
||||
+#if __GNUC__ >= 12
|
||||
+# pragma GCC diagnostic ignored "-Wdangling-pointer"
|
||||
+#endif
|
||||
+
|
||||
void LzmaEncProps_Init(CLzmaEncProps *p)
|
||||
{
|
||||
p->level = 5;
|
@ -1,118 +0,0 @@
|
||||
From: Alexander Graf <agraf@suse.de>
|
||||
Date: Thu, 1 Apr 2010 17:36:23 +0200
|
||||
Subject: Make char muxer more robust wrt small FIFOs
|
||||
|
||||
Virtio-Console can only process one character at a time. Using it on S390
|
||||
gave me strange "lags" where I got the character I pressed before when
|
||||
pressing one. So I typed in "abc" and only received "a", then pressed "d"
|
||||
but the guest received "b" and so on.
|
||||
|
||||
While the stdio driver calls a poll function that just processes on its
|
||||
queue in case virtio-console can't take multiple characters at once, the
|
||||
muxer does not have such callbacks, so it can't empty its queue.
|
||||
|
||||
To work around that limitation, I introduced a new timer that only gets
|
||||
active when the guest can not receive any more characters. In that case
|
||||
it polls again after a while to check if the guest is now receiving input.
|
||||
|
||||
This patch fixes input when using -nographic on s390 for me.
|
||||
|
||||
[AF: Rebased for v2.7.0-rc2]
|
||||
[BR: minor edits to pass qemu's checkpatch script]
|
||||
Signed-off-by: Bruce Rogers <brogers@suse.com>
|
||||
---
|
||||
chardev/char-fe.c | 1 +
|
||||
chardev/char-mux.c | 16 ++++++++++++++++
|
||||
chardev/char.c | 1 +
|
||||
chardev/chardev-internal.h | 3 +++
|
||||
tests/unit/test-char.c | 1 +
|
||||
5 files changed, 22 insertions(+)
|
||||
|
||||
diff --git a/chardev/char-fe.c b/chardev/char-fe.c
|
||||
index 7789f7be9c873928be895d618e98..c7556602c77787357c802553ab91 100644
|
||||
--- a/chardev/char-fe.c
|
||||
+++ b/chardev/char-fe.c
|
||||
@@ -21,6 +21,7 @@
|
||||
* OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
|
||||
* THE SOFTWARE.
|
||||
*/
|
||||
+#define HW_POISON_H /* avoid poison since we patch against rules it "enforces" */
|
||||
#include "qemu/osdep.h"
|
||||
#include "qemu/error-report.h"
|
||||
#include "qapi/error.h"
|
||||
diff --git a/chardev/char-mux.c b/chardev/char-mux.c
|
||||
index ee2d47b20d9bd0d2ceb132343bf3..5a7c66e7466cefdc96cb95e26b84 100644
|
||||
--- a/chardev/char-mux.c
|
||||
+++ b/chardev/char-mux.c
|
||||
@@ -22,6 +22,7 @@
|
||||
* THE SOFTWARE.
|
||||
*/
|
||||
|
||||
+#define HW_POISON_H /* avoid poison since we patch against rules it "enforces" */
|
||||
#include "qemu/osdep.h"
|
||||
#include "qapi/error.h"
|
||||
#include "qemu/module.h"
|
||||
@@ -198,6 +199,17 @@ static void mux_chr_accept_input(Chardev *chr)
|
||||
be->chr_read(be->opaque,
|
||||
&d->buffer[m][d->cons[m]++ & MUX_BUFFER_MASK], 1);
|
||||
}
|
||||
+
|
||||
+#if defined(TARGET_S390X)
|
||||
+ /*
|
||||
+ * We're still not able to sync producer and consumer, so let's wait a bit
|
||||
+ * and try again by then.
|
||||
+ */
|
||||
+ if (d->prod[m] != d->cons[m]) {
|
||||
+ qemu_mod_timer(d->accept_timer, qemu_get_clock_ns(vm_clock)
|
||||
+ + (int64_t)100000);
|
||||
+ }
|
||||
+#endif
|
||||
}
|
||||
|
||||
static int mux_chr_can_read(void *opaque)
|
||||
@@ -332,6 +344,10 @@ static void qemu_chr_open_mux(Chardev *chr,
|
||||
}
|
||||
|
||||
d->focus = -1;
|
||||
+#if defined(TARGET_S390X)
|
||||
+ d->accept_timer = qemu_new_timer_ns(vm_clock,
|
||||
+ (QEMUTimerCB *)mux_chr_accept_input, chr);
|
||||
+#endif
|
||||
/* only default to opened state if we've realized the initial
|
||||
* set of muxes
|
||||
*/
|
||||
diff --git a/chardev/char.c b/chardev/char.c
|
||||
index 0169d8dde4b533c9cf851831b03c..3b1495c0a4fd6b9e81f6703eeb49 100644
|
||||
--- a/chardev/char.c
|
||||
+++ b/chardev/char.c
|
||||
@@ -22,6 +22,7 @@
|
||||
* THE SOFTWARE.
|
||||
*/
|
||||
|
||||
+#define HW_POISON_H /* avoid poison since we patch against rules it "enforces" */
|
||||
#include "qemu/osdep.h"
|
||||
#include "qemu/cutils.h"
|
||||
#include "monitor/monitor.h"
|
||||
diff --git a/chardev/chardev-internal.h b/chardev/chardev-internal.h
|
||||
index 4e03af31476cb88cbe699dfafb23..ae5738ae4e3bd90ae703740a68da 100644
|
||||
--- a/chardev/chardev-internal.h
|
||||
+++ b/chardev/chardev-internal.h
|
||||
@@ -37,6 +37,9 @@ struct MuxChardev {
|
||||
Chardev parent;
|
||||
CharBackend *backends[MAX_MUX];
|
||||
CharBackend chr;
|
||||
+#if defined(TARGET_S390X)
|
||||
+ QEMUTimer *accept_timer;
|
||||
+#endif
|
||||
int focus;
|
||||
int mux_cnt;
|
||||
int term_got_escape;
|
||||
diff --git a/tests/unit/test-char.c b/tests/unit/test-char.c
|
||||
index 5b3b48ebacd353d4525226e3aaf5..6ce130a663ec372d18f0a674af8e 100644
|
||||
--- a/tests/unit/test-char.c
|
||||
+++ b/tests/unit/test-char.c
|
||||
@@ -1,3 +1,4 @@
|
||||
+#define HW_POISON_H /* avoid poison since we patch against rules it "enforces" */
|
||||
#include "qemu/osdep.h"
|
||||
#include <glib/gstdio.h>
|
||||
|
@ -1,34 +0,0 @@
|
||||
From: Bruce Rogers <brogers@suse.com>
|
||||
Date: Thu, 25 Jan 2018 14:16:10 -0700
|
||||
Subject: Make installed scripts explicitly python3
|
||||
|
||||
References: bsc#1077564
|
||||
|
||||
We want to explicitly reference python3 in the scripts we install.
|
||||
|
||||
Signed-off-by: Bruce Rogers <brogers@suse.com>
|
||||
---
|
||||
scripts/analyze-migration.py | 2 +-
|
||||
scripts/vmstate-static-checker.py | 2 +-
|
||||
2 files changed, 2 insertions(+), 2 deletions(-)
|
||||
|
||||
diff --git a/scripts/analyze-migration.py b/scripts/analyze-migration.py
|
||||
index b82a1b0c58c4490ffd0c7d083a44..26f9fb1382108787cc1b56546873 100755
|
||||
--- a/scripts/analyze-migration.py
|
||||
+++ b/scripts/analyze-migration.py
|
||||
@@ -1,4 +1,4 @@
|
||||
-#!/usr/bin/env python3
|
||||
+#!/usr/bin/python3
|
||||
#
|
||||
# Migration Stream Analyzer
|
||||
#
|
||||
diff --git a/scripts/vmstate-static-checker.py b/scripts/vmstate-static-checker.py
|
||||
index b36938836026facea26c0e475579..cf08875c4a51dfe17902e802e76b 100755
|
||||
--- a/scripts/vmstate-static-checker.py
|
||||
+++ b/scripts/vmstate-static-checker.py
|
||||
@@ -1,4 +1,4 @@
|
||||
-#!/usr/bin/env python3
|
||||
+#!/usr/bin/python3
|
||||
#
|
||||
# Compares vmstate information stored in JSON format, obtained from
|
||||
# the -dump-vmstate QEMU command.
|
@ -1,28 +0,0 @@
|
||||
From: Dario Faggioli <dfaggioli@suse.com>
|
||||
Date: Wed, 16 Feb 2022 19:22:01 +0100
|
||||
Subject: Makefile: define endianess for cross-building on aarch64
|
||||
|
||||
Git-commit: 0000000000000000000000000000000000000000
|
||||
References: bsc#1193545
|
||||
|
||||
Include aarch64 in the endianess check, so we can cross-build from
|
||||
there too.
|
||||
|
||||
Signed-of-by: Dario Faggioli <dfaggioli@suse.com>
|
||||
---
|
||||
Makefile.main | 2 +-
|
||||
1 file changed, 1 insertion(+), 1 deletion(-)
|
||||
|
||||
diff --git a/roms/skiboot/Makefile.main b/roms/skiboot/Makefile.main
|
||||
index c8a63e8b110f3c6bf115314da7bf..98790ec5c3b0f35272f032798353 100644
|
||||
--- a/roms/skiboot/Makefile.main
|
||||
+++ b/roms/skiboot/Makefile.main
|
||||
@@ -50,7 +50,7 @@ endif
|
||||
|
||||
# Host tools and options
|
||||
HOSTCC=gcc
|
||||
-HOSTEND=$(shell uname -m | sed -e 's/^i.*86$$/LITTLE/' -e 's/^x86.*/LITTLE/' -e 's/^ppc64le/LITTLE/' -e 's/^ppc.*/BIG/')
|
||||
+HOSTEND=$(shell uname -m | sed -e 's/^i.*86$$/LITTLE/' -e 's/^x86.*/LITTLE/' -e 's/^ppc64le/LITTLE/' -e 's/^aarch64/LITTLE/' -e 's/^ppc.*/BIG/')
|
||||
HOSTCFLAGS:=-O1 $(CWARNS) -DHAVE_$(HOSTEND)_ENDIAN -MMD
|
||||
HOSTCFLAGS += $(call try-cflag,$(HOSTCC),-std=gnu11)
|
||||
HOSTCFLAGS += $(call try-cflag,$(HOSTCC),-m64)
|
@ -1,57 +0,0 @@
|
||||
From: Aurelien Jarno <aurelien@aurel32.net>
|
||||
Date: Fri, 28 Jan 2022 18:33:46 +0100
|
||||
Subject: Makefile: fix build with binutils 2.38
|
||||
|
||||
Git-commit: 5d53b55aa77ffeefd4012445dfa6ad3535e1ff2c
|
||||
|
||||
From version 2.38, binutils default to ISA spec version 20191213. This
|
||||
means that the csr read/write (csrr*/csrw*) instructions and fence.i
|
||||
instruction has separated from the `I` extension, become two standalone
|
||||
extensions: Zicsr and Zifencei. As the kernel uses those instruction,
|
||||
this causes the following build failure:
|
||||
|
||||
CC lib/sbi/sbi_tlb.o
|
||||
<<BUILDDIR>>/lib/sbi/sbi_tlb.c: Assembler messages:
|
||||
<<BUILDDIR>>/lib/sbi/sbi_tlb.c:190: Error: unrecognized opcode `fence.i'
|
||||
make: *** [Makefile:431: <<BUILDDIR>>/build/lib/sbi/sbi_tlb.o] Error 1
|
||||
|
||||
The fix is to specify those extensions explicitly in -march. However as
|
||||
older binutils version do not support this, we first need to detect
|
||||
that.
|
||||
|
||||
Signed-off-by: Aurelien Jarno <aurelien@aurel32.net>
|
||||
Reviewed-by: Bin Meng <bmeng.cn@gmail.com>
|
||||
Tested-by: Alexandre Ghiti <alexandre.ghiti@canonical.com>
|
||||
Reviewed-by: Anup Patel <anup@brainfault.org>
|
||||
Signed-off-by: Dario Faggioli <dfaggioli@suse.com>
|
||||
---
|
||||
Makefile | 9 ++++++++-
|
||||
1 file changed, 8 insertions(+), 1 deletion(-)
|
||||
|
||||
diff --git a/roms/opensbi/Makefile b/roms/opensbi/Makefile
|
||||
index 062883e9695fb4447d2e61d7f282..fc1ea13e519a702e8b09d9006a2c 100644
|
||||
--- a/roms/opensbi/Makefile
|
||||
+++ b/roms/opensbi/Makefile
|
||||
@@ -153,6 +153,9 @@ OPENSBI_LD_PIE := $(shell $(CC) $(CLANG_TARGET) $(RELAX_FLAG) $(USE_LD_FLAG) -fP
|
||||
# Check whether the compiler supports -m(no-)save-restore
|
||||
CC_SUPPORT_SAVE_RESTORE := $(shell $(CC) $(CLANG_TARGET) $(RELAX_FLAG) -nostdlib -mno-save-restore -x c /dev/null -o /dev/null 2>&1 | grep "\-save\-restore" >/dev/null && echo n || echo y)
|
||||
|
||||
+# Check whether the assembler and the compiler support the Zicsr and Zifencei extensions
|
||||
+CC_SUPPORT_ZICSR_ZIFENCEI := $(shell $(CC) $(CLANG_TARGET) $(RELAX_FLAG) -nostdlib -march=rv$(OPENSBI_CC_XLEN)imafd_zicsr_zifencei -x c /dev/null -o /dev/null 2>&1 | grep "zicsr\|zifencei" > /dev/null && echo n || echo y)
|
||||
+
|
||||
# Build Info:
|
||||
# OPENSBI_BUILD_TIME_STAMP -- the compilation time stamp
|
||||
# OPENSBI_BUILD_COMPILER_VERSION -- the compiler version info
|
||||
@@ -223,7 +226,11 @@ ifndef PLATFORM_RISCV_ABI
|
||||
endif
|
||||
ifndef PLATFORM_RISCV_ISA
|
||||
ifneq ($(PLATFORM_RISCV_TOOLCHAIN_DEFAULT), 1)
|
||||
- PLATFORM_RISCV_ISA = rv$(PLATFORM_RISCV_XLEN)imafdc
|
||||
+ ifeq ($(CC_SUPPORT_ZICSR_ZIFENCEI), y)
|
||||
+ PLATFORM_RISCV_ISA = rv$(PLATFORM_RISCV_XLEN)imafdc_zicsr_zifencei
|
||||
+ else
|
||||
+ PLATFORM_RISCV_ISA = rv$(PLATFORM_RISCV_XLEN)imafdc
|
||||
+ endif
|
||||
else
|
||||
PLATFORM_RISCV_ISA = $(OPENSBI_CC_ISA)
|
||||
endif
|
@ -1,33 +0,0 @@
|
||||
From: Alexander Graf <agraf@suse.de>
|
||||
Date: Fri, 6 Jan 2012 01:05:55 +0100
|
||||
Subject: PPC: KVM: Disable mmu notifier check
|
||||
|
||||
When using hugetlbfs (which is required for HV mode KVM on 970), we
|
||||
check for MMU notifiers that on 970 can not be implemented properly.
|
||||
|
||||
So disable the check for mmu notifiers on PowerPC guests, making
|
||||
KVM guests work there, even if possibly racy in some odd circumstances.
|
||||
|
||||
Signed-off-by: Bruce Rogers <brogers@suse.com>
|
||||
---
|
||||
softmmu/physmem.c | 2 ++
|
||||
1 file changed, 2 insertions(+)
|
||||
|
||||
diff --git a/softmmu/physmem.c b/softmmu/physmem.c
|
||||
index dc3c3e5f2e7071eb21e77f3d95c2..b89279889e13b9d1bc37440a67a8 100644
|
||||
--- a/softmmu/physmem.c
|
||||
+++ b/softmmu/physmem.c
|
||||
@@ -2077,11 +2077,13 @@ RAMBlock *qemu_ram_alloc_from_fd(ram_addr_t size, MemoryRegion *mr,
|
||||
return NULL;
|
||||
}
|
||||
|
||||
+#ifndef TARGET_PPC
|
||||
if (kvm_enabled() && !kvm_has_sync_mmu()) {
|
||||
error_setg(errp,
|
||||
"host lacks kvm mmu notifiers, -mem-path unsupported");
|
||||
return NULL;
|
||||
}
|
||||
+#endif
|
||||
|
||||
size = HOST_PAGE_ALIGN(size);
|
||||
file_size = get_file_size(fd);
|
258
README.PACKAGING
258
README.PACKAGING
@ -1,92 +1,202 @@
|
||||
The qemu package includes a special maintenance workflow in order to support git
|
||||
based patching, including of submodules. Please use it in order to have changes
|
||||
you make be acceptable to the package maintainers. A bash script (update_git.sh)
|
||||
implements this workflow.
|
||||
# PACKAGING WORKFLOW(S)
|
||||
|
||||
A local clone of the upstream repo(s) is required for the packaging workflow.
|
||||
If none is found, the qemu superproject will be cloned as a shallow repo for the
|
||||
workflow script's use. If you intend to do more than superficial work in the
|
||||
qemu package, unshallow it. The submodule local repos aren't needed unless you
|
||||
intend to do patch work there. See config.sh for the local repo paths.
|
||||
The qemu package follows a special maintenance workflow in order to support
|
||||
git based patching, including of submodules. Please use it in order to have
|
||||
changes you make be acceptable to the package maintainers.
|
||||
|
||||
The qemu.spec file is generated from a template file (qemu.spec.in), so to make
|
||||
spec file changes outside of the patch file references (handled by the script),
|
||||
you need to edit the template file, and NOT the qemu.spec file. The spec file's
|
||||
version and patch references are added when update_git.sh is passed certain
|
||||
commands, as described below.
|
||||
All the development happens at https://github.com/openSUSE/qemu. The relevant
|
||||
branch is `factory`.
|
||||
|
||||
If you are not modifying any patches or their order, but just need to update the
|
||||
spec file from a changed template, run 'bash ./update_git.sh refresh'.
|
||||
Any change to the package should be submitted in the form of a Pull Request
|
||||
against such repository and branch.
|
||||
|
||||
If the set of patches is being modified, including their order, you will want to
|
||||
first run 'bash ./update_git.sh pkg2git', which makes the current package patch
|
||||
set available in a local git branch named 'frombundle' (see config.sh for the
|
||||
locations). This incarnation of the package patches comes from a "bundle of git
|
||||
bundles", included as a package source file named bundles.tar.xz, which the
|
||||
script extracts to the corresponding local frombundle branch. To add, remove or
|
||||
modify the package patches, you will then do that work in a local branch whose
|
||||
name corresponds to that qemu package's release version as follows:
|
||||
The qemu major and minor release numbers are part of the name, prefixed by
|
||||
'opensuse-', so, for example, for the v5.2.0 based SLE-15-SP3 qemu, the branch
|
||||
would be named 'opensuse-5.2'. You want to start your work based on the current
|
||||
patchqueue as contained in 'frombundle', so one approach is to do (depending on
|
||||
your local repo's current state), 'git checkout -f --recurse-submodules -B
|
||||
opensuse-5.2 frombundle', and then cherry-pick upstream patches into it, or
|
||||
interactive rebase it to modify or delete patches, etc. Be careful to keep the
|
||||
branch based on the upstream tag which represents the package tarball however!
|
||||
The reminder of this document provides more details, explanations and examples
|
||||
for both contributors and maintainers.
|
||||
|
||||
Once you have the patch queue ready to go, simply run 'bash ./update_git.sh
|
||||
git2pkg' (in your local obs branch directory) to refresh the bundles.tar.xz
|
||||
file, as well as the package spec and patch files. The package qemu.changes file
|
||||
is modified to list added or removed patches as a starting point for documenting
|
||||
the change.
|
||||
|
||||
When you are ready to check in the package, using 'bash update_git.sh ci' is
|
||||
provided as a convenience (and to help preserve correct spec file formatting,
|
||||
since a 'normal osc check-in' messes up the spec file a bit).
|
||||
# FOR CONTRIBUTORS
|
||||
|
||||
Additional Notes:
|
||||
## BACKPORTING AN UPSTREAM PATCH
|
||||
|
||||
The maintainer and automation use another workflow mode dealing with packaging
|
||||
the latest upstream qemu. See 'LATEST' references in the scripts for details,
|
||||
as this is an 'expert mode' and isn't documented here.
|
||||
For submitting a backport of an upstream patch, proceed as follows (a local
|
||||
copy of the repository is of course necessary).
|
||||
|
||||
Patches which are from an upstream git repo should have the commit id recorded
|
||||
just below the Subject line (after a blank line) as follows:
|
||||
Identify the hash of the commit that needs backporting and do:
|
||||
|
||||
Git-commit: <40-char-sha-id>
|
||||
git cherry-pick -esx <commit_hash>
|
||||
|
||||
If a patch is anticipated to be shortly included in upstream repo, mark that
|
||||
fact by doing the above with 40 0's, which will flag it as needing to be updated
|
||||
in the near future.
|
||||
This way, the changelog will already contain the reference to the upstream
|
||||
commit itself, and the appropriate "Signed-off-by:" tag.
|
||||
|
||||
We try to maintain, if possible, patch ordering as follows: (tarball as base),
|
||||
patches which come from upstream commits in commit order, patches which will
|
||||
soon be upstream (as mentioned above), followed by our private patches.
|
||||
If the backport is related to Bugzilla (or Jira, and/or CVEs, etc) entry, add a
|
||||
reference to that, such as:
|
||||
|
||||
Bug or feature tracking identifiers should also be added to the patch similarly,
|
||||
using the abbreviations identified here:
|
||||
http://en.opensuse.org/openSUSE:Packaging_Patches_guidelines#Current_set_of_abbreviations
|
||||
using the "Reference:" tag, with multiple entries comma separated.
|
||||
Resolves: bsc#123456
|
||||
|
||||
The ability to provide a conditional inclusion of a patch (eg based on
|
||||
architecture, is provided by this workflow by using the "Include-If:" tag, as
|
||||
shown here:
|
||||
Or:
|
||||
|
||||
Include-If: %ifarch aarch64
|
||||
References: jsc#PED-1234
|
||||
|
||||
Or:
|
||||
|
||||
Resolves: bsc#7891011 (CVE-1234-5678)
|
||||
|
||||
Add it between the "(cherry picked from commit ...)" line and the "Signed-off-by:"
|
||||
line that follows it.
|
||||
|
||||
An example of the end result, where Dario Faggioli (<dfaggioli@suse.com>) is
|
||||
backporting upstream commit abe2c4bdb65e8dd in order to fix bug 1209546 from
|
||||
bugzilla.opensuse.org is:
|
||||
|
||||
test-vmstate: fix bad GTree usage, use-after-free
|
||||
|
||||
According to g_tree_foreach() documentation:
|
||||
"The tree may not be modified while iterating over it (you can't
|
||||
add/remove items)."
|
||||
|
||||
[...]
|
||||
|
||||
Get rid of the node removal within the tree traversal. Also
|
||||
check the trees have the same number of nodes before the actual
|
||||
diff.
|
||||
|
||||
Fixes: 9a85e4b8f6 ("migration: Support gtree migration")
|
||||
Resolves: https://gitlab.com/qemu-project/qemu/-/issues/1518
|
||||
Signed-off-by: Marc-Andr303251 Lureau <marcandre.lureau@redhat.com>
|
||||
Signed-off-by: Eric Auger <eric.auger@redhat.com>
|
||||
Reported-by: Richard W.M. Jones <rjones@redhat.com>
|
||||
Tested-by: Richard W.M. Jones <rjones@redhat.com>
|
||||
Reviewed-by: Richard W.M. Jones <rjones@redhat.com>
|
||||
Reviewed-by: Daniel P. Berrang303251 <berrange@redhat.com>
|
||||
Reviewed-by: Juan Quintela <quintela@redhat.com>
|
||||
Signed-off-by: Juan Quintela <quintela@redhat.com>
|
||||
(cherry picked from commit abe2c4bdb65e8dd9cb2f01c355baa394bf49a8af)
|
||||
Resolves: bsc#1209546
|
||||
Signed-off-by: Dario Faggioli <dfaggioli@suse.com>
|
||||
|
||||
Of course, all conflicts and issues should be resolved, before committing the
|
||||
result/completing the cherry-picking.
|
||||
|
||||
At this point, the PR should be opened. As soon as that happens, some checks
|
||||
will be run automatically and the maintainers of the QEMU package will review
|
||||
and, eventually, merge or reject it.
|
||||
|
||||
PRs containing multiple commits are allowed. They are actually encouraged, if
|
||||
the patches being backported are related and/or dependant among each others. It
|
||||
must, however, always be the case that each upstream commit is cherry-picked
|
||||
individually.
|
||||
|
||||
Note that there is no need to change any 'qemu.changes' file. That will, in
|
||||
fact be handled by the package maintainers (and such RPM changelog entries will
|
||||
be automatically generated out of the git commit messages).
|
||||
|
||||
## ADDING A PATCH NOT COMING FROM UPSTREAM
|
||||
|
||||
Downstream patches, i.e., patches that are not backports of upstream commits,
|
||||
should be avoided as much as possible. The (largely!) recommended approach is
|
||||
to submit the patch upstream and then, once it is accepted and committed,
|
||||
backport it.
|
||||
|
||||
If that is not possible (for whatever reason), a pull request with a downstream
|
||||
only patch can be opened. The procedure is almost identical to the one described
|
||||
above for upstream backports. The main differences are:
|
||||
|
||||
1) Downstream only patch cannot be cherry-picked from upstream commits, of
|
||||
course. Therefore, the PR will consist of the commit(s) that introduces the
|
||||
patch.
|
||||
|
||||
2) There will be no "(cherry picked from commit ...") line in the changelog
|
||||
of a downstream only patch. On the other hand, the "Resolves:" or
|
||||
"Reference:" tag, that link the patch to the issue it's trying to solve,
|
||||
must be there, and the same is true for the "Signed-off-by:" tag
|
||||
indicating who is proposing adding it.
|
||||
|
||||
3) It is required that the subject of the commit starts with the [openSUSE] tag.
|
||||
|
||||
An example of a downstream only commit is:
|
||||
|
||||
[openSUSE] pc: q35: Bump max_cpus to 1024
|
||||
|
||||
And use the new limit for machine version 7.1 too.
|
||||
Keep the old limit of 288 for machine versions 7.0 and earlier.
|
||||
|
||||
Signed-off-by: Dario Faggioli <dfaggioli@suse.com>
|
||||
References: bsc#1202282, jsc#PED-2592
|
||||
Signed-off-by: Dario Faggioli <dfaggioli@suse.com>
|
||||
|
||||
## CHANGING THE PACKAGING FILES
|
||||
|
||||
Files that are necessary for building the RPM (like the spec file) or that
|
||||
are part of the RPM and will be copied in the appropriate places in the
|
||||
filesystem when it is installed are also part of the git repository. In fact,
|
||||
they can be found in the `rpm/` directory.
|
||||
|
||||
Any addition, removal or change of and on any of those file should just be done
|
||||
as a regular commit, and a pull request including such commit(s) should be
|
||||
opened.
|
||||
|
||||
Commits to packaging files should be prefixed with both the [openSUSE] tag and
|
||||
an [RPM] tag. An example can be this one:
|
||||
|
||||
[openSUSE][RPM] Add downstream packaging files
|
||||
|
||||
Stash the "packaging files" in the QEMU repository, in the rpm/
|
||||
directory. During package build, they will be pulled out from there
|
||||
and used as appropriate.
|
||||
|
||||
Signed-off-by: Dario Faggioli <dfaggioli@suse.com>
|
||||
|
||||
## ADDING A PATCH IN A SUBMODULE
|
||||
|
||||
For including a backport, or in general adding a patch, to a submodule, the
|
||||
downstream git repository for the submodule must be checkedout at the location
|
||||
where the submodule resides, in the main QEMU git repository.
|
||||
|
||||
For example, for including a downstream patch in the ipxe submodule, a local
|
||||
copy of the repository https://github.com/openSUSE/qemu-ipxe.git is necessary.
|
||||
After checking out the `factory` branch, add the patch there (cherry-picking
|
||||
it from upstream, if it is a backport, and respecting all the tagging rules
|
||||
explained in the previous sections).
|
||||
|
||||
At this point:
|
||||
- the branch must be pushed;
|
||||
- in the main (qemu) repository, a commit must be added and pushed, for making
|
||||
sure that the new patch is picked up.
|
||||
|
||||
Basically, the commit in the main repository is how the information that a
|
||||
submodule as a new head is recorded.
|
||||
|
||||
The changelog of such commit shall include a reference to the subjects of all
|
||||
the new commits in the various submodules. Unfortinately, there is not yet a
|
||||
good way of achieving this automatically.
|
||||
|
||||
As last step, a pull request should be opened, as usual.
|
||||
|
||||
## REMOVING PATCHES
|
||||
|
||||
If a patch, or, in general, a commit, that is already part of the repository
|
||||
must be removed, this must be done without rewriting the git history, i.e., with
|
||||
a revert (and then a pull request with the revert should be opened).
|
||||
|
||||
|
||||
# FOR MAINTAINERS
|
||||
|
||||
## REVIEWING AND ACCEPTING PRs
|
||||
|
||||
TODO
|
||||
|
||||
## COMMITTING CHANGES INTO FACTORY
|
||||
|
||||
TODO
|
||||
|
||||
## UPDATING THE BASE QEMU VERSION
|
||||
|
||||
TODO
|
||||
|
||||
|
||||
# MANUAL AND AUTOMATED CHECKS
|
||||
|
||||
TODO
|
||||
|
||||
This will cause the patch application in the spec file to be done as follows:
|
||||
%ifarch aarch64
|
||||
%patch0013 -p1
|
||||
%endif
|
||||
|
||||
A trick worth noting is, if a given git tracked patch is to be applied in a way
|
||||
that can't be done in the normal patching section of the spec file, you can
|
||||
still include the patch, and use it by name with the patch program elsewhere in
|
||||
the spec file by doing something such as:
|
||||
Include-If: %if 0%{?patch-possibly-applied-elsewhere}
|
||||
(this variable will remain undefined in the spec file) And then elsewhere in the
|
||||
spec file, the actual patch (eg specially-handled-change.patch) is referenced as
|
||||
eg:
|
||||
|
||||
patch -p1 < %_sourcedir/specially-handled-change.patch
|
||||
|
@ -1,47 +0,0 @@
|
||||
From: =?UTF-8?q?Andreas=20F=C3=A4rber?= <afaerber@suse.de>
|
||||
Date: Sun, 15 Jan 2012 19:53:49 +0100
|
||||
Subject: Raise soft address space limit to hard limit
|
||||
MIME-Version: 1.0
|
||||
Content-Type: text/plain; charset=UTF-8
|
||||
Content-Transfer-Encoding: 8bit
|
||||
|
||||
For SLES we want users to be able to use large memory configurations
|
||||
with KVM without fiddling with ulimit -Sv.
|
||||
|
||||
Signed-off-by: Andreas Färber <afaerber@suse.de>
|
||||
[BR: add include for sys/resource.h]
|
||||
Signed-off-by: Bruce Rogers <brogers@suse.com>
|
||||
---
|
||||
softmmu/vl.c | 12 ++++++++++++
|
||||
1 file changed, 12 insertions(+)
|
||||
|
||||
diff --git a/softmmu/vl.c b/softmmu/vl.c
|
||||
index 706bd7cff793dff6433c93dc6601..738736c50d90e7144743dfe0f61c 100644
|
||||
--- a/softmmu/vl.c
|
||||
+++ b/softmmu/vl.c
|
||||
@@ -42,6 +42,7 @@
|
||||
#include "sysemu/reset.h"
|
||||
#include "sysemu/runstate.h"
|
||||
#include "sysemu/runstate-action.h"
|
||||
+#include <sys/resource.h>
|
||||
#include "sysemu/seccomp.h"
|
||||
#include "sysemu/tcg.h"
|
||||
#include "sysemu/xen.h"
|
||||
@@ -2613,6 +2614,17 @@ void qemu_init(int argc, char **argv, char **envp)
|
||||
MachineClass *machine_class;
|
||||
bool userconfig = true;
|
||||
FILE *vmstate_dump_file = NULL;
|
||||
+ struct rlimit rlimit_as;
|
||||
+
|
||||
+ /*
|
||||
+ * Try to raise the soft address space limit.
|
||||
+ * Default on SLES 11 SP2 is 80% of physical+swap memory.
|
||||
+ */
|
||||
+ getrlimit(RLIMIT_AS, &rlimit_as);
|
||||
+ if (rlimit_as.rlim_cur < rlimit_as.rlim_max) {
|
||||
+ rlimit_as.rlim_cur = rlimit_as.rlim_max;
|
||||
+ setrlimit(RLIMIT_AS, &rlimit_as);
|
||||
+ }
|
||||
|
||||
qemu_add_opts(&qemu_drive_opts);
|
||||
qemu_add_drive_opts(&qemu_legacy_drive_opts);
|
@ -1,42 +0,0 @@
|
||||
From: Bruce Rogers <brogers@suse.com>
|
||||
Date: Mon, 14 Sep 2020 14:15:00 -0600
|
||||
Subject: Revert "roms/efirom, tests/uefi-test-tools: update edk2's own
|
||||
submodules first"
|
||||
|
||||
This reverts commit ec87b5daca761039bbcf781eedbe4987f790836f.
|
||||
|
||||
No need. In our build system submodules are checked out.
|
||||
|
||||
Signed-off-by: Bruce Rogers <brogers@suse.com>
|
||||
[DF: Rebased on top of 6.2.0]
|
||||
Signed-off-by: Dario Faggioli <dfaggioli@suse.com>
|
||||
---
|
||||
roms/Makefile | 2 --
|
||||
tests/uefi-test-tools/Makefile | 1 -
|
||||
2 files changed, 3 deletions(-)
|
||||
|
||||
diff --git a/roms/Makefile b/roms/Makefile
|
||||
index 0e652aff895fe0680cf35e43b299..fd2c5824787e1c983f6e66170a60 100644
|
||||
--- a/roms/Makefile
|
||||
+++ b/roms/Makefile
|
||||
@@ -151,8 +151,6 @@ build-efi-roms: build-pxe-roms
|
||||
# efirom
|
||||
#
|
||||
edk2-basetools:
|
||||
- cd edk2/BaseTools && git submodule update --init --force \
|
||||
- Source/C/BrotliCompress/brotli
|
||||
$(MAKE) -C edk2/BaseTools \
|
||||
PYTHON_COMMAND=$${EDK2_PYTHON_COMMAND:-python3} \
|
||||
EXTRA_OPTFLAGS='$(EDK2_BASETOOLS_OPTFLAGS)' \
|
||||
diff --git a/tests/uefi-test-tools/Makefile b/tests/uefi-test-tools/Makefile
|
||||
index 471f0de981090b3d419b8bc7890c..1dcddcdbbabf1c7dbea9c233d0ef 100644
|
||||
--- a/tests/uefi-test-tools/Makefile
|
||||
+++ b/tests/uefi-test-tools/Makefile
|
||||
@@ -99,7 +99,6 @@ Build/bios-tables-test.%.efi: build-edk2-tools
|
||||
+./build.sh $(edk2_dir) BiosTablesTest $* $@
|
||||
|
||||
build-edk2-tools:
|
||||
- cd $(edk2_dir)/BaseTools && git submodule update --init --force
|
||||
$(MAKE) -C $(edk2_dir)/BaseTools \
|
||||
PYTHON_COMMAND=$${EDK2_PYTHON_COMMAND:-python3} \
|
||||
EXTRA_OPTFLAGS='$(EDK2_BASETOOLS_OPTFLAGS)' \
|
@ -1,55 +0,0 @@
|
||||
From: Dario Faggioli <dfaggioli@suse.com>
|
||||
Date: Tue, 24 May 2022 20:52:17 +0200
|
||||
Subject: Revert "tests/qtest: enable more vhost-user tests by default"
|
||||
|
||||
Git-commit: 0000000000000000000000000000000000000000
|
||||
|
||||
Revert commit "tests/qtest: enable more vhost-user tests by default"
|
||||
(8dcb404bff6d9), as it causes prooblem when building with GCC 12 and LTO
|
||||
enabled.
|
||||
|
||||
This should be considered temporary, until the actual reason why the
|
||||
code of the tests that are added in that commit breaks.
|
||||
|
||||
It has been reported upstream, and will be (hopefully) solved there:
|
||||
https://lore.kernel.org/qemu-devel/1d3bbff9e92e7c8a24db9e140dcf3f428c2df103.camel@suse.com/
|
||||
|
||||
Signed-off-by: Dario Faggioli <dfaggioli@suse.com>
|
||||
---
|
||||
tests/qtest/vhost-user-test.c | 21 ++++++++++++---------
|
||||
1 file changed, 12 insertions(+), 9 deletions(-)
|
||||
|
||||
diff --git a/tests/qtest/vhost-user-test.c b/tests/qtest/vhost-user-test.c
|
||||
index 8bf390be207cd2c016662c78f4a4..a4f7cc4359fac1bc6f556ef28810 100644
|
||||
--- a/tests/qtest/vhost-user-test.c
|
||||
+++ b/tests/qtest/vhost-user-test.c
|
||||
@@ -996,17 +996,20 @@ static void register_vhost_user_test(void)
|
||||
"virtio-net",
|
||||
test_migrate, &opts);
|
||||
|
||||
- opts.before = vhost_user_test_setup_reconnect;
|
||||
- qos_add_test("vhost-user/reconnect", "virtio-net",
|
||||
- test_reconnect, &opts);
|
||||
+ /* keeps failing on build-system since Aug 15 2017 */
|
||||
+ if (getenv("QTEST_VHOST_USER_FIXME")) {
|
||||
+ opts.before = vhost_user_test_setup_reconnect;
|
||||
+ qos_add_test("vhost-user/reconnect", "virtio-net",
|
||||
+ test_reconnect, &opts);
|
||||
|
||||
- opts.before = vhost_user_test_setup_connect_fail;
|
||||
- qos_add_test("vhost-user/connect-fail", "virtio-net",
|
||||
- test_vhost_user_started, &opts);
|
||||
+ opts.before = vhost_user_test_setup_connect_fail;
|
||||
+ qos_add_test("vhost-user/connect-fail", "virtio-net",
|
||||
+ test_vhost_user_started, &opts);
|
||||
|
||||
- opts.before = vhost_user_test_setup_flags_mismatch;
|
||||
- qos_add_test("vhost-user/flags-mismatch", "virtio-net",
|
||||
- test_vhost_user_started, &opts);
|
||||
+ opts.before = vhost_user_test_setup_flags_mismatch;
|
||||
+ qos_add_test("vhost-user/flags-mismatch", "virtio-net",
|
||||
+ test_vhost_user_started, &opts);
|
||||
+ }
|
||||
|
||||
opts.before = vhost_user_test_setup_multiqueue;
|
||||
opts.edge.extra_device_opts = "mq=on";
|
@ -1,62 +0,0 @@
|
||||
From: =?UTF-8?q?Martin=20Li=C5=A1ka?= <martin.liska@suse.com>
|
||||
Date: Tue, 22 Mar 2022 10:52:19 +0100
|
||||
Subject: Silence GCC 12 spurious warnings
|
||||
MIME-Version: 1.0
|
||||
Content-Type: text/plain; charset=UTF-8
|
||||
Content-Transfer-Encoding: 8bit
|
||||
|
||||
Git-commit: 0000000000000000000000000000000000000000
|
||||
References: bsc#1197018
|
||||
|
||||
With GCC 12, build fails like this:
|
||||
|
||||
[ 6245s] inlined from 'memcpy_user' at
|
||||
arch/x86/include/librm.h:155:2,
|
||||
[ 6245s] inlined from 'copy_from_user' at
|
||||
include/ipxe/uaccess.h:338:2,
|
||||
[ 6245s] inlined from 'acpi_sx_zsdt' at core/acpi.c:217:3:
|
||||
[ 6245s] arch/x86/include/bits/string.h:79:32: error: array subscript
|
||||
'union <anonymous>[0]' is partly outside array bounds of 'union
|
||||
<anonymous>[1]' [-Werror=array-bounds]
|
||||
[ 6245s] 79 | dest_u->u32[0] = src_u->u32[0];
|
||||
[ 6245s] | ~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~
|
||||
[ 6245s] core/acpi.c: In function 'acpi_sx_zsdt':
|
||||
[ 6245s] core/acpi.c:191:11: note: object 'buf' of size 4
|
||||
[ 6245s] 191 | } buf;
|
||||
[ 6245s] | ^~~
|
||||
|
||||
Which is a false positive reported by GCC compiler:
|
||||
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=98503
|
||||
|
||||
Silence the watning.
|
||||
|
||||
Signed-off-by: Martin Liška <martin.liska@suse.com>
|
||||
Signed-off-by: Dario Faggioli <dfaggioli@suse.com>
|
||||
---
|
||||
src/Makefile.housekeeping | 13 +++++++++++++
|
||||
1 file changed, 13 insertions(+)
|
||||
|
||||
diff --git a/roms/ipxe/src/Makefile.housekeeping b/roms/ipxe/src/Makefile.housekeeping
|
||||
index 36cfb950e014914232f254b7edbb..cad327d31dbe0bd69d956c32d28d 100644
|
||||
--- a/roms/ipxe/src/Makefile.housekeeping
|
||||
+++ b/roms/ipxe/src/Makefile.housekeeping
|
||||
@@ -183,6 +183,19 @@ WNAPM_TEST = $(CC) -Wno-address-of-packed-member -x c -c /dev/null \
|
||||
WNAPM_FLAGS := $(shell $(WNAPM_TEST) && \
|
||||
$(ECHO) '-Wno-address-of-packed-member')
|
||||
WORKAROUND_CFLAGS += $(WNAPM_FLAGS)
|
||||
+
|
||||
+# gcc 12.1 generates false positive warnings. Inhibit the warnings.
|
||||
+WNAB_TEST = $(CC) -Wno-array-bounds -x c -c /dev/null \
|
||||
+ -o /dev/null >/dev/null 2>&1
|
||||
+WNAB_FLAGS := $(shell $(WNAB_TEST) && \
|
||||
+ $(ECHO) '-Wno-array-bounds')
|
||||
+WORKAROUND_CFLAGS += $(WNAB_FLAGS)
|
||||
+
|
||||
+WNDP_TEST = $(CC) -Wno-dangling-pointer-x c -c /dev/null \
|
||||
+ -o /dev/null >/dev/null 2>&1
|
||||
+WNDP_FLAGS := $(shell $(WNAB_TEST) && \
|
||||
+ $(ECHO) '-Wno-dangling-pointer')
|
||||
+WORKAROUND_CFLAGS += $(WNDP_FLAGS)
|
||||
endif
|
||||
|
||||
# Some versions of gas choke on division operators, treating them as
|
33
_constraints
33
_constraints
@ -3,8 +3,7 @@
|
||||
<overwrite>
|
||||
<conditions>
|
||||
<package>qemu</package>
|
||||
<package>qemu:linux-user</package>
|
||||
<package>qemu:testsuite</package>
|
||||
<package>qemu:qemu-linux-user</package>
|
||||
</conditions>
|
||||
<hardware>
|
||||
<disk>
|
||||
@ -12,18 +11,6 @@
|
||||
</disk>
|
||||
</hardware>
|
||||
</overwrite>
|
||||
<!-- To test qemu-linux-user, armv7l needs more than the default memory -->
|
||||
<overwrite>
|
||||
<conditions>
|
||||
<arch>armv7l</arch>
|
||||
<package>qemu:linux-user</package>
|
||||
</conditions>
|
||||
<hardware>
|
||||
<memory>
|
||||
<size unit="M">8192</size>
|
||||
</memory>
|
||||
</hardware>
|
||||
</overwrite>
|
||||
<!-- To build qemu, s390x needs more than the default memory -->
|
||||
<overwrite>
|
||||
<conditions>
|
||||
@ -36,13 +23,13 @@
|
||||
</memory>
|
||||
</hardware>
|
||||
</overwrite>
|
||||
<!-- Excluding ARM, qemu-testsuite needs more than the default memory -->
|
||||
<!-- And this is the case for (some of the) other arch-es as well -->
|
||||
<overwrite>
|
||||
<conditions>
|
||||
<arch>i586</arch>
|
||||
<arch>x86_64</arch>
|
||||
<arch>ppc64le</arch>
|
||||
<package>qemu:testsuite</package>
|
||||
<package>qemu</package>
|
||||
</conditions>
|
||||
<hardware>
|
||||
<memory>
|
||||
@ -54,7 +41,7 @@
|
||||
<overwrite>
|
||||
<conditions>
|
||||
<arch>ppc64</arch>
|
||||
<package>qemu:testsuite</package>
|
||||
<package>qemu</package>
|
||||
</conditions>
|
||||
<hardware>
|
||||
<memory>
|
||||
@ -73,4 +60,16 @@
|
||||
<processors>8</processors>
|
||||
</hardware>
|
||||
</overwrite>
|
||||
<!-- To test qemu-linux-user, armv7l needs more than the default memory -->
|
||||
<overwrite>
|
||||
<conditions>
|
||||
<arch>armv7l</arch>
|
||||
<package>qemu:qemu-linux-user</package>
|
||||
</conditions>
|
||||
<hardware>
|
||||
<memory>
|
||||
<size unit="M">8192</size>
|
||||
</memory>
|
||||
</hardware>
|
||||
</overwrite>
|
||||
</constraints>
|
||||
|
@ -1,3 +1,3 @@
|
||||
<multibuild>
|
||||
<package>linux-user</package>
|
||||
<package>qemu-linux-user</package>
|
||||
</multibuild>
|
||||
|
22
_service
Normal file
22
_service
Normal file
@ -0,0 +1,22 @@
|
||||
<services>
|
||||
<service name="obs_scm" mode="manual">
|
||||
<param name="scm">git</param>
|
||||
<param name="url">https://github.com/opensuse/qemu.git</param>
|
||||
<param name="revision">factory</param>
|
||||
<param name="versionformat">@PARENT_TAG@</param>
|
||||
<param name="versionrewrite-pattern">[v]?([^-+a-z]+)(.*)</param>
|
||||
<param name="versionrewrite-replacement">\1</param>
|
||||
<param name="changesgenerate">enable</param>
|
||||
<param name="extract">rpm/common.inc</param>
|
||||
<param name="extract">rpm/qemu.spec</param>
|
||||
<param name="extract">rpm/qemu-linux-user.spec</param>
|
||||
<param name="extract">rpm/README.PACKAGING</param>
|
||||
<param name="extract">rpm/qemu-rpmlintrc</param>
|
||||
</service>
|
||||
<service name="set_version" mode="manual"/>
|
||||
<service name="tar" mode="buildtime"/>
|
||||
<service name="recompress" mode="buildtime">
|
||||
<param name="file">*.tar</param>
|
||||
<param name="compression">xz</param>
|
||||
</service>
|
||||
</services>
|
4
_servicedata
Normal file
4
_servicedata
Normal file
@ -0,0 +1,4 @@
|
||||
<servicedata>
|
||||
<service name="tar_scm">
|
||||
<param name="url">https://github.com/opensuse/qemu.git</param>
|
||||
<param name="changesrevision">aaca3d0d6b11f122737d41bb934749ba718229da</param></service></servicedata>
|
@ -1,31 +0,0 @@
|
||||
From: Bruce Rogers <brogers@suse.com>
|
||||
Date: Tue, 16 Feb 2021 11:29:41 -0700
|
||||
Subject: [ath5k] Add missing AR5K_EEPROM_READ in ath5k_eeprom_read_turbo_modes
|
||||
|
||||
Git-commit: 19d0fab40f07eeea7fe6b9e0d4e8d4b0c2de215f
|
||||
References: boo#1181922
|
||||
|
||||
The GCC11 compiler pointed out something that apparently no previous
|
||||
compiler noticed: in ath5k_eeprom_pread_turbo_modes, local variable
|
||||
val is used uninitialized. From what I can see, the code is just
|
||||
missing an initial AR5K_EEPROM_READ. Add it right before the switch
|
||||
statement.
|
||||
|
||||
Signed-off-by: Bruce Rogers <brogers@suse.com>
|
||||
Signed-off-by: Michael Brown <mcb30@ipxe.org>
|
||||
---
|
||||
src/drivers/net/ath/ath5k/ath5k_eeprom.c | 1 +
|
||||
1 file changed, 1 insertion(+)
|
||||
|
||||
diff --git a/roms/ipxe/src/drivers/net/ath/ath5k/ath5k_eeprom.c b/roms/ipxe/src/drivers/net/ath/ath5k/ath5k_eeprom.c
|
||||
index 983d206b7e36cc4981ecbb760a41..12519bc599fb7d4757da43a6bcc2 100644
|
||||
--- a/roms/ipxe/src/drivers/net/ath/ath5k/ath5k_eeprom.c
|
||||
+++ b/roms/ipxe/src/drivers/net/ath/ath5k/ath5k_eeprom.c
|
||||
@@ -416,6 +416,7 @@ ath5k_eeprom_read_turbo_modes(struct ath5k_hw *ah,
|
||||
if (ee->ee_version < AR5K_EEPROM_VERSION_5_0)
|
||||
return 0;
|
||||
|
||||
+ AR5K_EEPROM_READ(o++, val);
|
||||
switch (mode){
|
||||
case AR5K_EEPROM_MODE_11A:
|
||||
ee->ee_switch_settling_turbo[mode] = (val >> 6) & 0x7f;
|
@ -1,79 +0,0 @@
|
||||
From: Sam Li <faithilikerun@gmail.com>
|
||||
Date: Sat, 24 Sep 2022 22:48:15 +0800
|
||||
Subject: block/io_uring: revert "Use io_uring_register_ring_fd() to skip fd
|
||||
operations"
|
||||
|
||||
Git-commit: 0000000000000000000000000000000000000000
|
||||
References: bsc#1204082
|
||||
|
||||
Resolves: https://gitlab.com/qemu-project/qemu/-/issues/1193
|
||||
|
||||
The commit "Use io_uring_register_ring_fd() to skip fd operations" broke
|
||||
when booting a guest with iothread and io_uring. That is because the
|
||||
io_uring_register_ring_fd() call is made from the main thread instead of
|
||||
IOThread where io_uring_submit() is called. It can not be guaranteed
|
||||
to register the ring fd in the correct thread or unregister the same ring
|
||||
fd if the IOThread is disabled. This optimization is not critical so we
|
||||
will revert previous commit.
|
||||
|
||||
This reverts commit e2848bc574fe2715c694bf8fe9a1ba7f78a1125a
|
||||
and 77e3f038af1764983087e3551a0fde9951952c4d.
|
||||
|
||||
Signed-off-by: Sam Li <faithilikerun@gmail.com>
|
||||
Signed-off-by: Dario Faggioli <dfaggioli@suse.com>
|
||||
---
|
||||
block/io_uring.c | 13 +------------
|
||||
meson.build | 1 -
|
||||
2 files changed, 1 insertion(+), 13 deletions(-)
|
||||
|
||||
diff --git a/block/io_uring.c b/block/io_uring.c
|
||||
index a1760152e0581c279e22b1c3a8d0..973e15d87693370dd3388f511962 100644
|
||||
--- a/block/io_uring.c
|
||||
+++ b/block/io_uring.c
|
||||
@@ -11,7 +11,6 @@
|
||||
#include "qemu/osdep.h"
|
||||
#include <liburing.h>
|
||||
#include "block/aio.h"
|
||||
-#include "qemu/error-report.h"
|
||||
#include "qemu/queue.h"
|
||||
#include "block/block.h"
|
||||
#include "block/raw-aio.h"
|
||||
@@ -19,7 +18,6 @@
|
||||
#include "qapi/error.h"
|
||||
#include "trace.h"
|
||||
|
||||
-
|
||||
/* io_uring ring size */
|
||||
#define MAX_ENTRIES 128
|
||||
|
||||
@@ -432,17 +430,8 @@ LuringState *luring_init(Error **errp)
|
||||
}
|
||||
|
||||
ioq_init(&s->io_q);
|
||||
-#ifdef CONFIG_LIBURING_REGISTER_RING_FD
|
||||
- if (io_uring_register_ring_fd(&s->ring) < 0) {
|
||||
- /*
|
||||
- * Only warn about this error: we will fallback to the non-optimized
|
||||
- * io_uring operations.
|
||||
- */
|
||||
- warn_report("failed to register linux io_uring ring file descriptor");
|
||||
- }
|
||||
-#endif
|
||||
-
|
||||
return s;
|
||||
+
|
||||
}
|
||||
|
||||
void luring_cleanup(LuringState *s)
|
||||
diff --git a/meson.build b/meson.build
|
||||
index 6641e86c0107906bb07d6b35d54a..265fea0648a8b651306deae60c0f 100644
|
||||
--- a/meson.build
|
||||
+++ b/meson.build
|
||||
@@ -1805,7 +1805,6 @@ config_host_data.set('CONFIG_LIBNFS', libnfs.found())
|
||||
config_host_data.set('CONFIG_LIBSSH', libssh.found())
|
||||
config_host_data.set('CONFIG_LINUX_AIO', libaio.found())
|
||||
config_host_data.set('CONFIG_LINUX_IO_URING', linux_io_uring.found())
|
||||
-config_host_data.set('CONFIG_LIBURING_REGISTER_RING_FD', cc.has_function('io_uring_register_ring_fd', prefix: '#include <liburing.h>', dependencies:linux_io_uring))
|
||||
config_host_data.set('CONFIG_LIBPMEM', libpmem.found())
|
||||
config_host_data.set('CONFIG_NUMA', numa.found())
|
||||
config_host_data.set('CONFIG_OPENGL', opengl.found())
|
11
bridge.conf
11
bridge.conf
@ -1,11 +0,0 @@
|
||||
# Access control file for qemu bridge helper
|
||||
# Syntax consists of:
|
||||
# # comment (ignored)
|
||||
# allow all
|
||||
# allow <bridge_name>
|
||||
# deny all
|
||||
# deny <bridge_name>
|
||||
# include /path/to/additional/ACL/file
|
||||
# Users are blacklisted by default and 'deny' takes precedence over 'allow'.
|
||||
# Including additional ACL files allows file access permissions to be used as
|
||||
# a component of the policy to allow access or deny access to specific bridges.
|
@ -1,28 +0,0 @@
|
||||
From: Bruce Rogers <brogers@suse.com>
|
||||
Date: Thu, 4 Feb 2021 11:06:47 -0700
|
||||
Subject: build: be explicit about -mx86-used-note=no
|
||||
|
||||
binutils v2.36 switched the default for the assembler's -mx86-used-note,
|
||||
which caused breakage building seavgabios as follows:
|
||||
ld: section .note.gnu.property LMA [0000000000000000,0000000000000027]
|
||||
overlaps section .text LMA [0000000000000000,0000000000006e87]
|
||||
Fix by explicitly specifying -mx86-used-note=no to assembler in seabios'
|
||||
Makefile (boo#1181775)
|
||||
|
||||
Signed-off-by: Bruce Rogers <brogers@suse.com>
|
||||
---
|
||||
Makefile | 1 +
|
||||
1 file changed, 1 insertion(+)
|
||||
|
||||
diff --git a/roms/seabios/Makefile b/roms/seabios/Makefile
|
||||
index 5ced69cd8be94d36c8aaa887ce73..e0c51a4e455e9796437b7f59dd17 100644
|
||||
--- a/roms/seabios/Makefile
|
||||
+++ b/roms/seabios/Makefile
|
||||
@@ -73,6 +73,7 @@ COMMONCFLAGS += $(call cc-option,$(CC),-fstack-check=no,)
|
||||
COMMONCFLAGS += $(call cc-option,$(CC),-Wno-address-of-packed-member,)
|
||||
COMMONCFLAGS += $(call cc-option,$(CC),-fcf-protection=none,)
|
||||
COMMA := ,
|
||||
+COMMONCFLAGS += $(call cc-option,$(CC),-Wa$(COMMA)-mx86-used-note=no,)
|
||||
|
||||
CFLAGS32FLAT := $(COMMONCFLAGS) -DMODE16=0 -DMODESEGMENT=0
|
||||
CFLAGSSEG := $(COMMONCFLAGS) -DMODESEGMENT=1 -fno-defer-pop \
|
@ -1,3 +0,0 @@
|
||||
version https://git-lfs.github.com/spec/v1
|
||||
oid sha256:9f317be581f7c79828e97405398736903b44f3f132fe075201fca2975142658b
|
||||
size 43516
|
102
common.inc
Normal file
102
common.inc
Normal file
@ -0,0 +1,102 @@
|
||||
%define _buildshell /bin/bash
|
||||
|
||||
%define sbver 1.16.3_3_gc13ff2cd
|
||||
|
||||
%define srcdir %{_builddir}/%buildsubdir
|
||||
%define blddir %srcdir/build
|
||||
|
||||
%define build_x86_firmware 0
|
||||
%define build_ppc_firmware 0
|
||||
%define build_opensbi_firmware 0
|
||||
%define kvm_available 0
|
||||
%define legacy_qemu_kvm 0
|
||||
%define force_fit_virtio_pxe_rom 1
|
||||
|
||||
%define with_xen 0%{!?_without_xen:1}
|
||||
|
||||
%if "%{?distribution}" == ""
|
||||
%define distro private-build
|
||||
%else
|
||||
%define distro %{distribution}
|
||||
%endif
|
||||
|
||||
# Items to exclude in ALP-based products
|
||||
%if 0%{?suse_version} == 1600
|
||||
%define with_xen 0
|
||||
%endif
|
||||
|
||||
%bcond_with system_membarrier
|
||||
%bcond_with malloc_trim
|
||||
|
||||
%bcond_with chkqtests
|
||||
|
||||
%if 0%{?suse_version} > 1600
|
||||
# canokey is an openSUSE thing, not a SLE one
|
||||
%ifarch x86_64
|
||||
%bcond_without canokey
|
||||
%else
|
||||
%bcond_with canokey
|
||||
%endif
|
||||
%endif
|
||||
|
||||
%if 0%{?suse_version} > 1600
|
||||
# XDP seems not to be there in SLE...
|
||||
%bcond_without xdp
|
||||
%else
|
||||
%bcond_with xdp
|
||||
%endif
|
||||
|
||||
# Make it possible to build without spice (for SLE/Leap Micro)
|
||||
%bcond_without spice
|
||||
|
||||
# We do not have the stuff needed to compile rutabaga support.
|
||||
# If/when we want to do it, we can check how it's done here:
|
||||
# https://src.fedoraproject.org/rpms/qemu/c/deeb9357cb751df21c566fd8408936cfb034d43b?branch=rawhide
|
||||
%define has_rutabaga_gfx 0
|
||||
|
||||
%define has_virtiofsd 1
|
||||
# Upstream virtiofsd does not even build on 32 bit systems
|
||||
%ifarch %ix86 %arm
|
||||
%define has_virtiofsd 0
|
||||
%endif
|
||||
|
||||
# non-x86 archs still seem to have some issues with Link Time Optimization
|
||||
%ifnarch %ix86 x86_64
|
||||
%define _lto_cflags %{nil}
|
||||
%endif
|
||||
|
||||
%ifarch aarch64
|
||||
%define qemu_arch aarch64
|
||||
%endif
|
||||
%ifarch %arm
|
||||
%define qemu_arch arm
|
||||
%endif
|
||||
%ifarch %ix86
|
||||
%define qemu_arch i386
|
||||
%endif
|
||||
%ifarch ppc64
|
||||
%define qemu_arch ppc64
|
||||
%endif
|
||||
%ifarch ppc
|
||||
%define qemu_arch ppc
|
||||
%endif
|
||||
%ifarch ppc64le
|
||||
%define qemu_arch ppc64le
|
||||
%endif
|
||||
%ifarch riscv64
|
||||
%define qemu_arch riscv64
|
||||
%endif
|
||||
%ifarch s390x
|
||||
%define qemu_arch s390x
|
||||
%endif
|
||||
%ifarch x86_64
|
||||
%define qemu_arch x86_64
|
||||
%endif
|
||||
|
||||
%define generic_qemu_description \
|
||||
QEMU provides full machine emulation and cross architecture usage. It closely\
|
||||
integrates with KVM and Xen virtualization, allowing for excellent performance.\
|
||||
Many options are available for defining the emulated environment, including\
|
||||
traditional devices, direct host device access, and interfaces specific to\
|
||||
virtualization.
|
||||
|
122
config.sh
122
config.sh
@ -1,122 +0,0 @@
|
||||
#!/bin/bash
|
||||
|
||||
# config.sh:
|
||||
|
||||
# The next few VARIABLES are to be edited as required:
|
||||
|
||||
# Package name. (In multibuild, it's the base package). Used to ref spec file.
|
||||
PKG=qemu
|
||||
|
||||
# Here is the git repo which tracks a separate upstream git based project
|
||||
# We take this approach so we can have our own tags and branches, and store
|
||||
# the patches in git for others to access outside of the bundle.
|
||||
PACKAGE_MAIN_GIT_REPO=https://github.com/openSUSE/qemu.git
|
||||
|
||||
# This is the upstream for the PACKAGE_MAIN_GIT_REPO
|
||||
UPSTREAM_GIT_REPO=https://gitlab.com/qemu-project/qemu.git
|
||||
|
||||
# The following specifies the upstream tag or commit upon which our patchqueue
|
||||
# gets rebased. The special value LATEST may be used to "automatically" track
|
||||
# the upstream development tree in the master branch
|
||||
#GIT_UPSTREAM_COMMIT_ISH=v7.0.0
|
||||
GIT_UPSTREAM_COMMIT_ISH=v7.1.0
|
||||
# WARNING: If transitioning from using LATEST to not, MANUALLY re-set the
|
||||
# tarball present. If transitioning TO LATEST, make sure that
|
||||
# NEXT_RELEASE_IS_MAJOR is set correctly
|
||||
# This is used to choose the version number when LATEST processing is active
|
||||
NEXT_RELEASE_IS_MAJOR=1
|
||||
|
||||
# Unfortunately, SeaBIOS doesn't always follow an "always increasing" version
|
||||
# model, so there may be times we should overide the automated version setting.
|
||||
# We can do so by specifing the value here:
|
||||
#SEABIOS_VERSION=1.13.0
|
||||
|
||||
# In following, use 1 or 0 as needed (representing true or false respectively)
|
||||
NUMBERED_PATCHES=0
|
||||
|
||||
PATCH_RANGE=1000
|
||||
|
||||
# For compatibility with old packages, we include this option
|
||||
OVERRIDE_FIVE_DIGIT_NUMBERING=0
|
||||
|
||||
# Path to be used for temporary files, directories, repositories, etc.
|
||||
# Default is /dev/shm. An alternative could be /tmp (e.g., when building
|
||||
# in containers, or whatever).
|
||||
#TMPDIR=/dev/shm
|
||||
TMPDIR=/tmp
|
||||
|
||||
# This array tracks all git submodule paths within the superproject (1st entry)
|
||||
PATCH_PATH_MAP=(
|
||||
""
|
||||
"roms/seabios/"
|
||||
"roms/ipxe/"
|
||||
"roms/sgabios/"
|
||||
"roms/edk2/"
|
||||
"roms/skiboot/"
|
||||
"roms/SLOF/"
|
||||
"roms/openbios/"
|
||||
"ui/keycodemapdb/"
|
||||
"slirp/"
|
||||
"roms/u-boot/"
|
||||
"roms/qboot/"
|
||||
"dtc/"
|
||||
"roms/opensbi/"
|
||||
"roms/edk2/CryptoPkg/Library/OpensslLib/openssl/"
|
||||
"capstone/"
|
||||
"roms/qemu-palcode/"
|
||||
"roms/seabios-hppa/"
|
||||
"roms/u-boot-sam460ex/"
|
||||
"roms/QemuMacDrivers/"
|
||||
"meson/"
|
||||
"tests/fp/berkeley-softfloat-3/"
|
||||
"tests/fp/berkeley-testfloat-3/"
|
||||
"tests/lcitool/libvirt-ci"
|
||||
"roms/edk2/ArmPkg/Library/ArmSoftFloatLib/berkeley-softfloat-3/"
|
||||
"roms/edk2/CryptoPkg/Library/OpensslLib/openssl/boringssl/"
|
||||
"roms/edk2/CryptoPkg/Library/OpensslLib/openssl/krb5/"
|
||||
"roms/edk2/CryptoPkg/Library/OpensslLib/openssl/pyca-cryptography/"
|
||||
"roms/edk2/BaseTools/Source/C/BrotliCompress/brotli/"
|
||||
"roms/edk2/MdeModulePkg/Library/BrotliCustomDecompressLib/brotli/"
|
||||
"roms/edk2/MdeModulePkg/Universal/RegularExpressionDxe/oniguruma/"
|
||||
"roms/edk2/UnitTestFrameworkPkg/Library/CmockaLib/cmocka/"
|
||||
"roms/vbootrom/"
|
||||
"roms/edk2/RedfishPkg/Library/JsonLib/jansson"
|
||||
)
|
||||
|
||||
# (order and count must correspond to PATCH_PATH_MAP)
|
||||
LOCAL_REPO_MAP=(
|
||||
~/git/qemu-opensuse
|
||||
~/git/qemu-seabios
|
||||
~/git/qemu-ipxe
|
||||
~/git/qemu-sgabios
|
||||
~/git/qemu-edk2
|
||||
~/git/qemu-skiboot
|
||||
~/git/qemu-SLOF
|
||||
~/git/qemu-openbios
|
||||
~/git/qemu-keycodemapdb
|
||||
~/git/qemu-slirp
|
||||
~/git/qemu-u-boot
|
||||
~/git/qemu-qboot
|
||||
~/git/qemu-dtc
|
||||
~/git/qemu-opensbi
|
||||
~/git/qemu-edk2-openssl
|
||||
~/git/qemu-capstone
|
||||
~/git/qemu-qemu-palcode
|
||||
~/git/qemu-seabios-hppa
|
||||
~/git/qemu-u-boot-sam460ex
|
||||
~/git/qemu-QemuMacDrivers
|
||||
~/git/qemu-meson
|
||||
~/git/qemu-tests-berkeley-softfloat-3
|
||||
~/git/qemu-tests-berkeley-testfloat-3
|
||||
~/git/qemu-tests-lcitool-libvirt-ci
|
||||
~/git/qemu-edk2-berkeley-softfloat-3
|
||||
~/git/qemu-edk2-openssl-boringssl
|
||||
~/git/qemu-edk2-openssl-krb5
|
||||
~/git/qemu-edk2-openssl-pyca-cryptography
|
||||
~/git/qemu-edk2-BrotliCompress-brotli
|
||||
~/git/qemu-edk2-BrotliCustomDecompressLib-brotli
|
||||
~/git/qemu-edk2-oniguruma
|
||||
~/git/qemu-edk2-cmocka
|
||||
~/git/qemu-vbootrom
|
||||
~/git/qemu-edk2-jansson
|
||||
)
|
@ -1,22 +0,0 @@
|
||||
From: Bruce Rogers <brogers@suse.com>
|
||||
Date: Mon, 26 Aug 2019 13:28:57 -0600
|
||||
Subject: enable cross compilation on ARM
|
||||
|
||||
Signed-off-by: Bruce Rogers <brogers@suse.com>
|
||||
---
|
||||
Makefile | 2 +-
|
||||
1 file changed, 1 insertion(+), 1 deletion(-)
|
||||
|
||||
diff --git a/roms/seabios/Makefile b/roms/seabios/Makefile
|
||||
index 408983026669e531dcb84230dd23..5ced69cd8be94d36c8aaa887ce73 100644
|
||||
--- a/roms/seabios/Makefile
|
||||
+++ b/roms/seabios/Makefile
|
||||
@@ -13,7 +13,7 @@ export CONFIG_SHELL := sh
|
||||
export KCONFIG_AUTOHEADER := autoconf.h
|
||||
export KCONFIG_CONFIG := $(CURDIR)/.config
|
||||
export LC_ALL := C
|
||||
-CROSS_PREFIX=
|
||||
+CROSS_PREFIX=$(CROSS_COMPILE)
|
||||
ifneq ($(CROSS_PREFIX),)
|
||||
CC=$(CROSS_PREFIX)gcc
|
||||
endif
|
@ -1,27 +0,0 @@
|
||||
From: Bruce Rogers <brogers@suse.com>
|
||||
Date: Thu, 13 Aug 2020 18:23:35 -0600
|
||||
Subject: help compiler out by initializing array
|
||||
|
||||
The pre-release gcc 11 compiler is complaining that result_raw in
|
||||
bigint_test_exec is flagged as possibly being uninitialized when used
|
||||
(-Werror=maybe-uninitialized). Help the compiler by initializing the
|
||||
array.
|
||||
|
||||
Signed-off-by: Bruce Rogers <brogers@suse.com>
|
||||
---
|
||||
src/tests/bigint_test.c | 2 +-
|
||||
1 file changed, 1 insertion(+), 1 deletion(-)
|
||||
|
||||
diff --git a/roms/ipxe/src/tests/bigint_test.c b/roms/ipxe/src/tests/bigint_test.c
|
||||
index 8d40c3188784a693e83a2a9d3217..dfcd393c413b1c66ab2e9988c472 100644
|
||||
--- a/roms/ipxe/src/tests/bigint_test.c
|
||||
+++ b/roms/ipxe/src/tests/bigint_test.c
|
||||
@@ -210,7 +210,7 @@ void bigint_mod_exp_sample ( const bigint_element_t *base0,
|
||||
static const uint8_t addend_raw[] = addend; \
|
||||
static const uint8_t value_raw[] = value; \
|
||||
static const uint8_t expected_raw[] = expected; \
|
||||
- uint8_t result_raw[ sizeof ( expected_raw ) ]; \
|
||||
+ uint8_t result_raw[ sizeof ( expected_raw ) ] = {0}; \
|
||||
unsigned int size = \
|
||||
bigint_required_size ( sizeof ( value_raw ) ); \
|
||||
bigint_t ( size ) addend_temp; \
|
@ -1,31 +0,0 @@
|
||||
From: Mauro Matteo Cascella <mcascell@redhat.com>
|
||||
Date: Mon, 7 Mar 2022 16:22:01 +0100
|
||||
Subject: hw/scsi/megasas: check for NULL frame in megasas_command_cancelled()
|
||||
|
||||
Git-commit: 0000000000000000000000000000000000000000
|
||||
References: bsc#1180432, CVE-2020-35503
|
||||
|
||||
Ensure that 'cmd->frame' is not NULL before accessing the 'header' field.
|
||||
This check prevents a potential NULL pointer dereference issue.
|
||||
|
||||
RHBZ: https://bugzilla.redhat.com/show_bug.cgi?id=1910346
|
||||
Signed-off-by: Mauro Matteo Cascella <mcascell@redhat.com>
|
||||
Reported-by: Cheolwoo Myung <cwmyung@snu.ac.kr>
|
||||
Signed-off-by: Dario Faggioli <dfaggioli@suse.com>
|
||||
---
|
||||
hw/scsi/megasas.c | 2 +-
|
||||
1 file changed, 1 insertion(+), 1 deletion(-)
|
||||
|
||||
diff --git a/hw/scsi/megasas.c b/hw/scsi/megasas.c
|
||||
index d5dfb412bac4251c9fa06eb416b4..cf97b4d2db5bf91a0e18908e900d 100644
|
||||
--- a/hw/scsi/megasas.c
|
||||
+++ b/hw/scsi/megasas.c
|
||||
@@ -1927,7 +1927,7 @@ static void megasas_command_cancelled(SCSIRequest *req)
|
||||
{
|
||||
MegasasCmd *cmd = req->hba_private;
|
||||
|
||||
- if (!cmd) {
|
||||
+ if (!cmd || !cmd->frame) {
|
||||
return;
|
||||
}
|
||||
cmd->frame->header.cmd_status = MFI_STAT_SCSI_IO_FAILED;
|
@ -1,93 +0,0 @@
|
||||
From: Bruce Rogers <brogers@suse.com>
|
||||
Date: Fri, 5 Apr 2019 21:10:30 -0600
|
||||
Subject: hw/smbios: handle both file formats regardless of machine type
|
||||
|
||||
References: bsc#994082, bsc#1084316, boo#1131894
|
||||
|
||||
It's easy enough to handle either per-spec or legacy smbios structures
|
||||
in the smbios file input without regard to the machine type used, by
|
||||
simply applying the basic smbios formatting rules. then depending on
|
||||
what is detected. terminal numm bytes are added or removed for machine
|
||||
type specific processing.
|
||||
|
||||
Signed-off-by: Bruce Rogers <brogers@suse.com>
|
||||
---
|
||||
hw/smbios/smbios.c | 43 +++++++++++++++++++++++++++++++++++++++----
|
||||
1 file changed, 39 insertions(+), 4 deletions(-)
|
||||
|
||||
diff --git a/hw/smbios/smbios.c b/hw/smbios/smbios.c
|
||||
index 60349ee402719d55896658bf203c..59091c8454bf6d8d05c4c8313753 100644
|
||||
--- a/hw/smbios/smbios.c
|
||||
+++ b/hw/smbios/smbios.c
|
||||
@@ -1180,6 +1180,7 @@ void smbios_entry_add(QemuOpts *opts, Error **errp)
|
||||
struct smbios_structure_header *header;
|
||||
int size;
|
||||
struct smbios_table *table; /* legacy mode only */
|
||||
+ uint8_t *dbl_nulls, *orig_end;
|
||||
|
||||
if (!qemu_opts_validate(opts, qemu_smbios_file_opts, errp)) {
|
||||
return;
|
||||
@@ -1192,11 +1193,21 @@ void smbios_entry_add(QemuOpts *opts, Error **errp)
|
||||
}
|
||||
|
||||
/*
|
||||
- * NOTE: standard double '\0' terminator expected, per smbios spec.
|
||||
- * (except in legacy mode, where the second '\0' is implicit and
|
||||
- * will be inserted by the BIOS).
|
||||
+ * NOTE: standard double '\0' terminator expected, per smbios spec,
|
||||
+ * unless the data is formatted for legacy mode, which is used by
|
||||
+ * pc-i440fx-2.0 and earlier machine types. Legacy mode structures
|
||||
+ * without strings have no '\0' terminators, and those with strings
|
||||
+ * also don't have an additional '\0' terminator at the end of the
|
||||
+ * final string '\0' terminator. The BIOS will add the '\0' terminators
|
||||
+ * to comply with the smbios spec.
|
||||
+ * For greater compatibility, regardless of the machine type used,
|
||||
+ * either format is accepted.
|
||||
*/
|
||||
- smbios_tables = g_realloc(smbios_tables, smbios_tables_len + size);
|
||||
+ smbios_tables = g_realloc(smbios_tables, smbios_tables_len + size + 2);
|
||||
+ orig_end = smbios_tables + smbios_tables_len + size;
|
||||
+ /* add extra null bytes to end in case of legacy file data */
|
||||
+ *orig_end = '\0';
|
||||
+ *(orig_end + 1) = '\0';
|
||||
header = (struct smbios_structure_header *)(smbios_tables +
|
||||
smbios_tables_len);
|
||||
|
||||
@@ -1211,6 +1222,19 @@ void smbios_entry_add(QemuOpts *opts, Error **errp)
|
||||
header->type);
|
||||
return;
|
||||
}
|
||||
+ for (dbl_nulls = smbios_tables + smbios_tables_len + header->length;
|
||||
+ dbl_nulls + 2 <= orig_end; dbl_nulls++) {
|
||||
+ if (*dbl_nulls == '\0' && *(dbl_nulls + 1) == '\0') {
|
||||
+ break;
|
||||
+ }
|
||||
+ }
|
||||
+ if (dbl_nulls + 2 < orig_end) {
|
||||
+ error_setg(errp, "SMBIOS file data malformed");
|
||||
+ return;
|
||||
+ }
|
||||
+ /* increase size by how many extra nulls were actually needed */
|
||||
+ size += dbl_nulls + 2 - orig_end;
|
||||
+ smbios_tables = g_realloc(smbios_tables, smbios_tables_len + size);
|
||||
set_bit(header->type, have_binfile_bitmap);
|
||||
|
||||
if (header->type == 4) {
|
||||
@@ -1231,6 +1255,17 @@ void smbios_entry_add(QemuOpts *opts, Error **errp)
|
||||
* delete the one we don't need from smbios_set_defaults(),
|
||||
* once we know which machine version has been requested.
|
||||
*/
|
||||
+ if (dbl_nulls + 2 == orig_end) {
|
||||
+ /* chop off nulls to get legacy format */
|
||||
+ if (header->length + 2 == size) {
|
||||
+ size -= 2;
|
||||
+ } else {
|
||||
+ size -= 1;
|
||||
+ }
|
||||
+ } else {
|
||||
+ /* undo conversion from legacy format to per-spec format */
|
||||
+ size -= dbl_nulls + 2 - orig_end;
|
||||
+ }
|
||||
if (!smbios_entries) {
|
||||
smbios_entries_len = sizeof(uint16_t);
|
||||
smbios_entries = g_malloc0(smbios_entries_len);
|
@ -1,73 +0,0 @@
|
||||
From: Bruce Rogers <brogers@suse.com>
|
||||
Date: Fri, 17 May 2013 16:49:58 -0600
|
||||
Subject: increase x86_64 physical bits to 42
|
||||
MIME-Version: 1.0
|
||||
Content-Type: text/plain; charset=UTF-8
|
||||
Content-Transfer-Encoding: 8bit
|
||||
|
||||
Allow for guests with higher amounts of ram. The current thought
|
||||
is that 2TB specified on qemu commandline would be an appropriate
|
||||
limit. Note that this requires the next higher bit value since
|
||||
the highest address is actually more than 2TB due to the pci
|
||||
memory hole.
|
||||
|
||||
Signed-off-by: Bruce Rogers <brogers@suse.com>
|
||||
Signed-off-by: Andreas Färber <afaerber@suse.de>
|
||||
|
||||
The DSDT needs to be updated as well, or tests will fail.
|
||||
|
||||
The necessary changes are the following ones:
|
||||
|
||||
@@ -5,13 +5,13 @@
|
||||
*
|
||||
* Disassembling to symbolic ASL+ operators
|
||||
*
|
||||
- * Disassembly of /tmp/aml-ML87L1, Thu May 19 16:20:30 2022
|
||||
+ * Disassembly of tests/data/acpi/microvm/DSDT.pcie, Thu May 19 16:20:30 2022
|
||||
*
|
||||
* Original Table Header:
|
||||
* Signature "DSDT"
|
||||
* Length 0x00000BCF (3023)
|
||||
* Revision 0x02
|
||||
- * Checksum 0xD1
|
||||
+ * Checksum 0xD8
|
||||
* OEM ID "BOCHS "
|
||||
* OEM Table ID "BXPC "
|
||||
* OEM Revision 0x00000001 (1)
|
||||
@@ -1256,10 +1256,10 @@
|
||||
,, , AddressRangeMemory, TypeStatic)
|
||||
QWordMemory (ResourceProducer, PosDecode, MinFixed, MaxFixed, NonCacheable, ReadWrite,
|
||||
0x0000000000000000, // Granularity
|
||||
- 0x0000030000000000, // Range Minimum
|
||||
- 0x000003FFFFFFFFFF, // Range Maximum
|
||||
+ 0x000000C000000000, // Range Minimum
|
||||
+ 0x000000FFFFFFFFFF, // Range Maximum
|
||||
0x0000000000000000, // Translation Offset
|
||||
- 0x0000010000000000, // Length
|
||||
+ 0x0000004000000000, // Length
|
||||
,, , AddressRangeMemory, TypeStatic)
|
||||
})
|
||||
Name (SUPP, Zero)
|
||||
|
||||
We cannot, however, commit the modified binary as part of this patch,
|
||||
will not apply it. The binary is instead put in the package, and copied
|
||||
in place in the spec file, just before 'make check'.
|
||||
|
||||
Signed-off-by: Dario Faggioli <dfaggioli@suse.com>
|
||||
---
|
||||
target/i386/tcg/helper-tcg.h | 2 +-
|
||||
1 file changed, 1 insertion(+), 1 deletion(-)
|
||||
|
||||
diff --git a/target/i386/tcg/helper-tcg.h b/target/i386/tcg/helper-tcg.h
|
||||
index 34167e2e29cacee8dfb05e943fac..8ded299c8f4bf91ba2bea6b88211 100644
|
||||
--- a/target/i386/tcg/helper-tcg.h
|
||||
+++ b/target/i386/tcg/helper-tcg.h
|
||||
@@ -26,7 +26,7 @@
|
||||
#define TARGET_MAX_INSN_SIZE 16
|
||||
|
||||
#if defined(TARGET_X86_64)
|
||||
-# define TCG_PHYS_ADDR_BITS 40
|
||||
+# define TCG_PHYS_ADDR_BITS 42
|
||||
#else
|
||||
# define TCG_PHYS_ADDR_BITS 36
|
||||
#endif
|
@ -1,49 +0,0 @@
|
||||
From: Bruce Rogers <brogers@suse.com>
|
||||
Date: Thu, 27 Jun 2019 10:15:24 -0600
|
||||
Subject: ipxe:Makefile: fix issues of build reproducibility
|
||||
|
||||
References: bsc#1011213
|
||||
|
||||
It is desirable to produce the same bits on subsequent
|
||||
builds when the actual code of the package doesn't
|
||||
change. (bsc#1011213)
|
||||
|
||||
Signed-off-by: Bruce Rogers <brogers@suse.com>
|
||||
---
|
||||
src/Makefile.housekeeping | 13 ++++++++++---
|
||||
1 file changed, 10 insertions(+), 3 deletions(-)
|
||||
|
||||
diff --git a/roms/ipxe/src/Makefile.housekeeping b/roms/ipxe/src/Makefile.housekeeping
|
||||
index 134becd508c2f7f7c01c2f601d36..36cfb950e014914232f254b7edbb 100644
|
||||
--- a/roms/ipxe/src/Makefile.housekeeping
|
||||
+++ b/roms/ipxe/src/Makefile.housekeeping
|
||||
@@ -1163,11 +1163,18 @@ blib : $(BLIB)
|
||||
# Command to generate build ID. Must be unique for each $(BIN)/%.tmp,
|
||||
# even within the same build run.
|
||||
#
|
||||
-BUILD_ID_CMD := perl -e 'printf "0x%08x", int ( rand ( 0xffffffff ) );'
|
||||
+# NB: In the case of the SUSE qemu-ipxe package we want reproducible
|
||||
+# builds, so we just use the TGT_ROM_NAME variable, which is already
|
||||
+# a unique (in the context of the files we generate) hex value suitable
|
||||
+# for specifying the build_id. We no longer define a BUILD_ID_CMD, as
|
||||
+# we need to use the TGT_ROM_NAME variable directly in the link command
|
||||
|
||||
# Build timestamp
|
||||
#
|
||||
-BUILD_TIMESTAMP := $(shell date +%s)
|
||||
+# NB: In the case of the SUSE qemu-ipxe package we want reproducible
|
||||
+# builds, so we use a pre-determined timestamp, rather than the current
|
||||
+# timestamp
|
||||
+BUILD_TIMESTAMP := $(PACKAGING_TIMESTAMP)
|
||||
|
||||
# Build version
|
||||
#
|
||||
@@ -1187,7 +1194,7 @@ $(BIN)/version.%.o : core/version.c $(MAKEDEPS) $(GIT_INDEX)
|
||||
$(BIN)/%.tmp : $(BIN)/version.%.o $(BLIB) $(MAKEDEPS) $(LDSCRIPT)
|
||||
$(QM)$(ECHO) " [LD] $@"
|
||||
$(Q)$(LD) $(LDFLAGS) -T $(LDSCRIPT) $(TGT_LD_FLAGS) $< $(BLIB) -o $@ \
|
||||
- --defsym _build_id=`$(BUILD_ID_CMD)` \
|
||||
+ --defsym _build_id=`$(PRINTF) "0x%b" "$(TGT_ROM_NAME)"` \
|
||||
--defsym _build_timestamp=$(BUILD_TIMESTAMP) \
|
||||
-Map $(BIN)/$*.tmp.map
|
||||
$(Q)$(OBJDUMP) -ht $@ | $(PERL) $(SORTOBJDUMP) >> $(BIN)/$*.tmp.map
|
13
ksm.service
13
ksm.service
@ -1,13 +0,0 @@
|
||||
[Unit]
|
||||
Description=Kernel Samepage Merging
|
||||
ConditionPathExists=/sys/kernel/mm/ksm
|
||||
ConditionVirtualization=no
|
||||
|
||||
[Service]
|
||||
Type=oneshot
|
||||
RemainAfterExit=yes
|
||||
ExecStart=/bin/bash -c "/bin/echo 1 > /sys/kernel/mm/ksm/run"
|
||||
ExecStop=/bin/bash -c "/bin/echo 0 > /sys/kernel/mm/ksm/run"
|
||||
|
||||
[Install]
|
||||
WantedBy=multi-user.target
|
@ -1,75 +0,0 @@
|
||||
From: Alexander Graf <agraf@suse.de>
|
||||
Date: Mon, 23 Jul 2012 10:24:14 +0200
|
||||
Subject: linux-user: Fake /proc/cpuinfo
|
||||
MIME-Version: 1.0
|
||||
Content-Type: text/plain; charset=UTF-8
|
||||
Content-Transfer-Encoding: 8bit
|
||||
|
||||
Fedora 17 for ARM reads /proc/cpuinfo and fails if it doesn't contain
|
||||
ARM related contents. This patch implements a quick hack to expose real
|
||||
/proc/cpuinfo data taken from a real world machine.
|
||||
|
||||
The real fix would be to generate at least the flags automatically based
|
||||
on the selected CPU. Please do not submit this patch upstream until this
|
||||
has happened.
|
||||
|
||||
Signed-off-by: Alexander Graf <agraf@suse.de>
|
||||
[AF: Rebased for v1.6 and v1.7]
|
||||
Signed-off-by: Andreas Färber <afaerber@suse.de>
|
||||
[DF: Restructured it a bit, to make ARM look like other arch-es]
|
||||
Signed-off-by: Dario Faggioli <dfaggioli@suse.com>
|
||||
---
|
||||
linux-user/syscall.c | 26 ++++++++++++++++++++++++--
|
||||
1 file changed, 24 insertions(+), 2 deletions(-)
|
||||
|
||||
diff --git a/linux-user/syscall.c b/linux-user/syscall.c
|
||||
index f4091212027c254a19dc871a675d..b746511fe5ba1c03cf44a14ed811 100644
|
||||
--- a/linux-user/syscall.c
|
||||
+++ b/linux-user/syscall.c
|
||||
@@ -8157,7 +8157,8 @@ static int is_proc_myself(const char *filename, const char *entry)
|
||||
}
|
||||
|
||||
#if HOST_BIG_ENDIAN != TARGET_BIG_ENDIAN || \
|
||||
- defined(TARGET_SPARC) || defined(TARGET_M68K) || defined(TARGET_HPPA)
|
||||
+ defined(TARGET_SPARC) || defined(TARGET_M68K) || \
|
||||
+ defined(TARGET_HPPA) || defined(TARGET_ARM)
|
||||
static int is_proc(const char *filename, const char *entry)
|
||||
{
|
||||
return strcmp(filename, entry) == 0;
|
||||
@@ -8229,6 +8230,27 @@ static int open_cpuinfo(CPUArchState *cpu_env, int fd)
|
||||
}
|
||||
#endif
|
||||
|
||||
+#if defined(TARGET_ARM)
|
||||
+static int open_cpuinfo(CPUArchState *cpu_env, int fd)
|
||||
+{
|
||||
+ dprintf(fd,
|
||||
+"Processor : ARMv7 Processor rev 5 (v7l)\n"
|
||||
+"BogoMIPS : 799.53\n"
|
||||
+"Features : swp half thumb fastmult vfp edsp thumbee neon vfpv3\n"
|
||||
+"CPU implementer : 0x41\n"
|
||||
+"CPU architecture: 7\n"
|
||||
+"CPU variant : 0x2\n"
|
||||
+"CPU part : 0xc08\n"
|
||||
+"CPU revision : 5\n"
|
||||
+"\n"
|
||||
+"Hardware : Genesi Efika MX (Smarttop)\n"
|
||||
+"Revision : 51030\n"
|
||||
+"Serial : 0000000000000000\n");
|
||||
+ return 0;
|
||||
+}
|
||||
+#endif
|
||||
+
|
||||
+
|
||||
#if defined(TARGET_M68K)
|
||||
static int open_hardware(CPUArchState *cpu_env, int fd)
|
||||
{
|
||||
@@ -8253,7 +8275,7 @@ static int do_openat(CPUArchState *cpu_env, int dirfd, const char *pathname, int
|
||||
#if HOST_BIG_ENDIAN != TARGET_BIG_ENDIAN
|
||||
{ "/proc/net/route", open_net_route, is_proc },
|
||||
#endif
|
||||
-#if defined(TARGET_SPARC) || defined(TARGET_HPPA)
|
||||
+#if defined(TARGET_SPARC) || defined(TARGET_HPPA) || defined(TARGET_ARM)
|
||||
{ "/proc/cpuinfo", open_cpuinfo, is_proc },
|
||||
#endif
|
||||
#if defined(TARGET_M68K)
|
@ -1,66 +0,0 @@
|
||||
From: =?UTF-8?q?Daniel=20P=2E=20Berrang=C3=A9?= <berrange@redhat.com>
|
||||
Date: Tue, 4 Oct 2022 10:32:03 +0100
|
||||
Subject: linux-user: add more compat ioctl definitions
|
||||
MIME-Version: 1.0
|
||||
Content-Type: text/plain; charset=UTF-8
|
||||
Content-Transfer-Encoding: 8bit
|
||||
|
||||
Git-commit: 0000000000000000000000000000000000000000
|
||||
Refereces: bsc#1204001
|
||||
|
||||
GLibc changes prevent us from including linux/fs.h anymore,
|
||||
and we previously adjusted to this in
|
||||
|
||||
commit 3cd3df2a9584e6f753bb62a0028bd67124ab5532
|
||||
Author: Daniel P. Berrangé <berrange@redhat.com>
|
||||
Date: Tue Aug 2 12:41:34 2022 -0400
|
||||
|
||||
linux-user: fix compat with glibc >= 2.36 sys/mount.h
|
||||
|
||||
That change required adding compat ioctl definitions on the
|
||||
QEMU side for any ioctls that we would otherwise obtain
|
||||
from linux/fs.h. This commit adds more that were initially
|
||||
missed, due to their usage being conditionalized in QEMU.
|
||||
|
||||
Signed-off-by: Daniel P. Berrangé <berrange@redhat.com>
|
||||
Signed-off-by: Dario Faggioli <dfaggioli@suse.com>
|
||||
---
|
||||
linux-user/syscall.c | 25 +++++++++++++++++++++++++
|
||||
1 file changed, 25 insertions(+)
|
||||
|
||||
diff --git a/linux-user/syscall.c b/linux-user/syscall.c
|
||||
index 9d92e56e3996dc2174a4af9d0491..5acb463d5e11311b2108358c7c01 100644
|
||||
--- a/linux-user/syscall.c
|
||||
+++ b/linux-user/syscall.c
|
||||
@@ -111,6 +111,31 @@
|
||||
#define FS_IOC32_SETFLAGS _IOW('f', 2, int)
|
||||
#define FS_IOC32_GETVERSION _IOR('v', 1, int)
|
||||
#define FS_IOC32_SETVERSION _IOW('v', 2, int)
|
||||
+
|
||||
+#define BLKGETSIZE64 _IOR(0x12,114,size_t)
|
||||
+#define BLKDISCARD _IO(0x12,119)
|
||||
+#define BLKIOMIN _IO(0x12,120)
|
||||
+#define BLKIOOPT _IO(0x12,121)
|
||||
+#define BLKALIGNOFF _IO(0x12,122)
|
||||
+#define BLKPBSZGET _IO(0x12,123)
|
||||
+#define BLKDISCARDZEROES _IO(0x12,124)
|
||||
+#define BLKSECDISCARD _IO(0x12,125)
|
||||
+#define BLKROTATIONAL _IO(0x12,126)
|
||||
+#define BLKZEROOUT _IO(0x12,127)
|
||||
+
|
||||
+#define FIBMAP _IO(0x00,1)
|
||||
+#define FIGETBSZ _IO(0x00,2)
|
||||
+
|
||||
+struct file_clone_range {
|
||||
+ __s64 src_fd;
|
||||
+ __u64 src_offset;
|
||||
+ __u64 src_length;
|
||||
+ __u64 dest_offset;
|
||||
+};
|
||||
+
|
||||
+#define FICLONE _IOW(0x94, 9, int)
|
||||
+#define FICLONERANGE _IOW(0x94, 13, struct file_clone_range)
|
||||
+
|
||||
#else
|
||||
#include <linux/fs.h>
|
||||
#endif
|
@ -1,134 +0,0 @@
|
||||
From: =?UTF-8?q?Daniel=20P=2E=20Berrang=C3=A9?= <berrange@redhat.com>
|
||||
Date: Tue, 4 Oct 2022 10:32:06 +0100
|
||||
Subject: linux-user: drop conditionals for obsolete kernel header versions
|
||||
MIME-Version: 1.0
|
||||
Content-Type: text/plain; charset=UTF-8
|
||||
Content-Transfer-Encoding: 8bit
|
||||
|
||||
Git-commit: 0000000000000000000000000000000000000000
|
||||
Refereces: bsc#1204001
|
||||
|
||||
Given our newly enforced 4.18 baseline for the kernel headers version,
|
||||
we can drop any conditional checks for older versions.
|
||||
|
||||
Signed-off-by: Daniel P. Berrangé <berrange@redhat.com>
|
||||
Signed-off-by: Dario Faggioli <dfaggioli@suse.com>
|
||||
---
|
||||
linux-user/linux_loop.h | 4 ----
|
||||
linux-user/syscall.c | 14 ++------------
|
||||
tests/tcg/i386/test-i386.c | 10 +++-------
|
||||
3 files changed, 5 insertions(+), 23 deletions(-)
|
||||
|
||||
diff --git a/linux-user/linux_loop.h b/linux-user/linux_loop.h
|
||||
index f80b96f1ff92c71bc1232b733d37..5a9e0edef2729642bfca8f146e6d 100644
|
||||
--- a/linux-user/linux_loop.h
|
||||
+++ b/linux-user/linux_loop.h
|
||||
@@ -31,10 +31,6 @@ enum {
|
||||
#include <asm/posix_types.h> /* for __kernel_old_dev_t */
|
||||
#include <asm/types.h> /* for __u64 */
|
||||
|
||||
-#if LINUX_VERSION_CODE < KERNEL_VERSION(2,6,0) /* This is a guess. */
|
||||
-#define __kernel_old_dev_t __kernel_dev_t
|
||||
-#endif
|
||||
-
|
||||
/* Backwards compatibility version */
|
||||
struct loop_info {
|
||||
int lo_number; /* ioctl r/o */
|
||||
diff --git a/linux-user/syscall.c b/linux-user/syscall.c
|
||||
index 5acb463d5e11311b2108358c7c01..d7c0d4a45d3907f1ef28fe93f9b6 100644
|
||||
--- a/linux-user/syscall.c
|
||||
+++ b/linux-user/syscall.c
|
||||
@@ -2525,16 +2525,12 @@ set_timeout:
|
||||
case NETLINK_DROP_MEMBERSHIP:
|
||||
case NETLINK_BROADCAST_ERROR:
|
||||
case NETLINK_NO_ENOBUFS:
|
||||
-#if LINUX_VERSION_CODE >= KERNEL_VERSION(4, 2, 0)
|
||||
case NETLINK_LISTEN_ALL_NSID:
|
||||
case NETLINK_CAP_ACK:
|
||||
-#endif /* LINUX_VERSION_CODE >= KERNEL_VERSION(4, 2, 0) */
|
||||
-#if LINUX_VERSION_CODE >= KERNEL_VERSION(4, 12, 0)
|
||||
case NETLINK_EXT_ACK:
|
||||
-#endif /* LINUX_VERSION_CODE >= KERNEL_VERSION(4, 12, 0) */
|
||||
#if LINUX_VERSION_CODE >= KERNEL_VERSION(4, 20, 0)
|
||||
case NETLINK_GET_STRICT_CHK:
|
||||
-#endif /* LINUX_VERSION_CODE >= KERNEL_VERSION(4, 12, 0) */
|
||||
+#endif /* LINUX_VERSION_CODE >= KERNEL_VERSION(4, 20, 0) */
|
||||
break;
|
||||
default:
|
||||
goto unimplemented;
|
||||
@@ -2903,16 +2899,12 @@ get_timeout:
|
||||
case NETLINK_PKTINFO:
|
||||
case NETLINK_BROADCAST_ERROR:
|
||||
case NETLINK_NO_ENOBUFS:
|
||||
-#if LINUX_VERSION_CODE >= KERNEL_VERSION(4, 2, 0)
|
||||
case NETLINK_LISTEN_ALL_NSID:
|
||||
case NETLINK_CAP_ACK:
|
||||
-#endif /* LINUX_VERSION_CODE >= KERNEL_VERSION(4, 2, 0) */
|
||||
-#if LINUX_VERSION_CODE >= KERNEL_VERSION(4, 12, 0)
|
||||
case NETLINK_EXT_ACK:
|
||||
-#endif /* LINUX_VERSION_CODE >= KERNEL_VERSION(4, 12, 0) */
|
||||
#if LINUX_VERSION_CODE >= KERNEL_VERSION(4, 20, 0)
|
||||
case NETLINK_GET_STRICT_CHK:
|
||||
-#endif /* LINUX_VERSION_CODE >= KERNEL_VERSION(4, 12, 0) */
|
||||
+#endif /* LINUX_VERSION_CODE >= KERNEL_VERSION(4, 20, 0) */
|
||||
if (get_user_u32(len, optlen)) {
|
||||
return -TARGET_EFAULT;
|
||||
}
|
||||
@@ -2929,7 +2921,6 @@ get_timeout:
|
||||
return -TARGET_EFAULT;
|
||||
}
|
||||
break;
|
||||
-#if LINUX_VERSION_CODE >= KERNEL_VERSION(4, 2, 0)
|
||||
case NETLINK_LIST_MEMBERSHIPS:
|
||||
{
|
||||
uint32_t *results;
|
||||
@@ -2960,7 +2951,6 @@ get_timeout:
|
||||
unlock_user(results, optval_addr, 0);
|
||||
break;
|
||||
}
|
||||
-#endif /* LINUX_VERSION_CODE >= KERNEL_VERSION(4, 2, 0) */
|
||||
default:
|
||||
goto unimplemented;
|
||||
}
|
||||
diff --git a/tests/tcg/i386/test-i386.c b/tests/tcg/i386/test-i386.c
|
||||
index ac8d5a3c1f8b6eacf32649155c98..bd7ebb9d68b9e90673ed16a6f4cd 100644
|
||||
--- a/tests/tcg/i386/test-i386.c
|
||||
+++ b/tests/tcg/i386/test-i386.c
|
||||
@@ -1231,10 +1231,6 @@ static inline int modify_ldt(int func, void * ptr, unsigned long bytecount)
|
||||
return syscall(__NR_modify_ldt, func, ptr, bytecount);
|
||||
}
|
||||
|
||||
-#if LINUX_VERSION_CODE >= KERNEL_VERSION(2, 5, 66)
|
||||
-#define modify_ldt_ldt_s user_desc
|
||||
-#endif
|
||||
-
|
||||
#define MK_SEL(n) (((n) << 3) | 7)
|
||||
|
||||
uint8_t seg_data1[4096];
|
||||
@@ -1272,7 +1268,7 @@ uint8_t seg_data2[4096];
|
||||
/* NOTE: we use Linux modify_ldt syscall */
|
||||
void test_segs(void)
|
||||
{
|
||||
- struct modify_ldt_ldt_s ldt;
|
||||
+ struct user_desc ldt;
|
||||
long long ldt_table[3];
|
||||
int res, res2;
|
||||
char tmp;
|
||||
@@ -1374,7 +1370,7 @@ extern char code16_func3;
|
||||
|
||||
void test_code16(void)
|
||||
{
|
||||
- struct modify_ldt_ldt_s ldt;
|
||||
+ struct user_desc ldt;
|
||||
int res, res2;
|
||||
|
||||
/* build a code segment */
|
||||
@@ -1781,7 +1777,7 @@ void test_exceptions(void)
|
||||
}
|
||||
|
||||
{
|
||||
- struct modify_ldt_ldt_s ldt;
|
||||
+ struct user_desc ldt;
|
||||
ldt.entry_number = 1;
|
||||
ldt.base_addr = (unsigned long)&seg_data1;
|
||||
ldt.limit = (sizeof(seg_data1) + 0xfff) >> 12;
|
@ -1,36 +0,0 @@
|
||||
From: Alexander Graf <agraf@suse.de>
|
||||
Date: Thu, 13 Dec 2012 14:29:22 +0100
|
||||
Subject: linux-user: lseek: explicitly cast non-set offsets to signed
|
||||
|
||||
When doing lseek, SEEK_SET indicates that the offset is an unsigned variable.
|
||||
Other seek types have parameters that can be negative.
|
||||
|
||||
When converting from 32bit to 64bit parameters, we need to take this into
|
||||
account and enable SEEK_END and SEEK_CUR to be negative, while SEEK_SET stays
|
||||
absolute positioned which we need to maintain as unsigned.
|
||||
|
||||
Signed-off-by: Alexander Graf <agraf@suse.de>
|
||||
---
|
||||
linux-user/syscall.c | 9 +++++++--
|
||||
1 file changed, 7 insertions(+), 2 deletions(-)
|
||||
|
||||
diff --git a/linux-user/syscall.c b/linux-user/syscall.c
|
||||
index de782620fe3c9169a58e442a6f05..9d92e56e3996dc2174a4af9d0491 100644
|
||||
--- a/linux-user/syscall.c
|
||||
+++ b/linux-user/syscall.c
|
||||
@@ -8936,8 +8936,13 @@ static abi_long do_syscall1(CPUArchState *cpu_env, int num, abi_ulong arg1,
|
||||
return ret;
|
||||
#endif
|
||||
#ifdef TARGET_NR_lseek
|
||||
- case TARGET_NR_lseek:
|
||||
- return get_errno(lseek(arg1, arg2, arg3));
|
||||
+ case TARGET_NR_lseek: {
|
||||
+ off_t off = arg2;
|
||||
+ if (arg3 != SEEK_SET) {
|
||||
+ off = (abi_long)arg2;
|
||||
+ }
|
||||
+ return get_errno(lseek(arg1, off, arg3));
|
||||
+ }
|
||||
#endif
|
||||
#if defined(TARGET_NR_getxpid) && defined(TARGET_ALPHA)
|
||||
/* Alpha specific */
|
@ -1,101 +0,0 @@
|
||||
From: =?UTF-8?q?Daniel=20P=2E=20Berrang=C3=A9?= <berrange@redhat.com>
|
||||
Date: Tue, 4 Oct 2022 10:32:04 +0100
|
||||
Subject: linux-user: remove conditionals for many fs.h ioctls
|
||||
MIME-Version: 1.0
|
||||
Content-Type: text/plain; charset=UTF-8
|
||||
Content-Transfer-Encoding: 8bit
|
||||
|
||||
Git-commit: 0000000000000000000000000000000000000000
|
||||
Refereces: bsc#1204001
|
||||
|
||||
These ioctls have been defined in linux/fs.h for a long time
|
||||
|
||||
* BLKGETSIZE64 - <2.6.12 (linux.git epoch)
|
||||
* BLKDISCARD - 2.6.28 (d30a2605be9d5132d95944916e8f578fcfe4f976)
|
||||
* BLKIOMIN - 2.6.32 (ac481c20ef8f6c6f2be75d581863f40c43874ef7)
|
||||
* BLKIOOPT - 2.6.32 (ac481c20ef8f6c6f2be75d581863f40c43874ef7)
|
||||
* BLKALIGNOFF - 2.6.32 (ac481c20ef8f6c6f2be75d581863f40c43874ef7)
|
||||
* BLKPBSZGET - 2.6.32 (ac481c20ef8f6c6f2be75d581863f40c43874ef7)
|
||||
* BLKDISCARDZEROES - 2.6.32 (98262f2762f0067375f83824d81ea929e37e6bfe)
|
||||
* BLKSECDISCARD - 2.6.36 (8d57a98ccd0b4489003473979da8f5a1363ba7a3)
|
||||
* BLKROTATIONAL - 3.2 (ef00f59c95fe6e002e7c6e3663cdea65e253f4cc)
|
||||
* BLKZEROOUT - 3.6 (66ba32dc167202c3cf8c86806581a9393ec7f488)
|
||||
* FIBMAP - <2.6.12 (linux.git epoch)
|
||||
* FIGETBSZ - <2.6.12 (linux.git epoch)
|
||||
|
||||
and when building with latest glibc, we'll see compat definitions
|
||||
in syscall.c anyway thanks to the previous patch. Thus we can
|
||||
assume they always exist and remove the conditional checks.
|
||||
|
||||
Signed-off-by: Daniel P. Berrangé <berrange@redhat.com>
|
||||
Signed-off-by: Dario Faggioli <dfaggioli@suse.com>
|
||||
---
|
||||
linux-user/ioctls.h | 24 ------------------------
|
||||
1 file changed, 24 deletions(-)
|
||||
|
||||
diff --git a/linux-user/ioctls.h b/linux-user/ioctls.h
|
||||
index f182d40190ed43ffa1bbc4fd09cb..071f7ca2537560e3c923c9a18abb 100644
|
||||
--- a/linux-user/ioctls.h
|
||||
+++ b/linux-user/ioctls.h
|
||||
@@ -96,9 +96,7 @@
|
||||
IOCTL(BLKROGET, IOC_R, MK_PTR(TYPE_INT))
|
||||
IOCTL(BLKRRPART, 0, TYPE_NULL)
|
||||
IOCTL(BLKGETSIZE, IOC_R, MK_PTR(TYPE_ULONG))
|
||||
-#ifdef BLKGETSIZE64
|
||||
IOCTL(BLKGETSIZE64, IOC_R, MK_PTR(TYPE_ULONGLONG))
|
||||
-#endif
|
||||
IOCTL(BLKFLSBUF, 0, TYPE_NULL)
|
||||
IOCTL(BLKRASET, 0, TYPE_INT)
|
||||
IOCTL(BLKRAGET, IOC_R, MK_PTR(TYPE_LONG))
|
||||
@@ -107,33 +105,15 @@
|
||||
IOCTL_SPECIAL(BLKPG, IOC_W, do_ioctl_blkpg,
|
||||
MK_PTR(MK_STRUCT(STRUCT_blkpg_ioctl_arg)))
|
||||
|
||||
-#ifdef BLKDISCARD
|
||||
IOCTL(BLKDISCARD, IOC_W, MK_PTR(MK_ARRAY(TYPE_ULONGLONG, 2)))
|
||||
-#endif
|
||||
-#ifdef BLKIOMIN
|
||||
IOCTL(BLKIOMIN, IOC_R, MK_PTR(TYPE_INT))
|
||||
-#endif
|
||||
-#ifdef BLKIOOPT
|
||||
IOCTL(BLKIOOPT, IOC_R, MK_PTR(TYPE_INT))
|
||||
-#endif
|
||||
-#ifdef BLKALIGNOFF
|
||||
IOCTL(BLKALIGNOFF, IOC_R, MK_PTR(TYPE_INT))
|
||||
-#endif
|
||||
-#ifdef BLKPBSZGET
|
||||
IOCTL(BLKPBSZGET, IOC_R, MK_PTR(TYPE_INT))
|
||||
-#endif
|
||||
-#ifdef BLKDISCARDZEROES
|
||||
IOCTL(BLKDISCARDZEROES, IOC_R, MK_PTR(TYPE_INT))
|
||||
-#endif
|
||||
-#ifdef BLKSECDISCARD
|
||||
IOCTL(BLKSECDISCARD, IOC_W, MK_PTR(MK_ARRAY(TYPE_ULONGLONG, 2)))
|
||||
-#endif
|
||||
-#ifdef BLKROTATIONAL
|
||||
IOCTL(BLKROTATIONAL, IOC_R, MK_PTR(TYPE_SHORT))
|
||||
-#endif
|
||||
-#ifdef BLKZEROOUT
|
||||
IOCTL(BLKZEROOUT, IOC_W, MK_PTR(MK_ARRAY(TYPE_ULONGLONG, 2)))
|
||||
-#endif
|
||||
|
||||
IOCTL(FDMSGON, 0, TYPE_NULL)
|
||||
IOCTL(FDMSGOFF, 0, TYPE_NULL)
|
||||
@@ -149,17 +129,13 @@
|
||||
IOCTL(FDTWADDLE, 0, TYPE_NULL)
|
||||
IOCTL(FDEJECT, 0, TYPE_NULL)
|
||||
|
||||
-#ifdef FIBMAP
|
||||
IOCTL(FIBMAP, IOC_W | IOC_R, MK_PTR(TYPE_LONG))
|
||||
-#endif
|
||||
#ifdef FICLONE
|
||||
IOCTL(FICLONE, IOC_W, TYPE_INT)
|
||||
IOCTL(FICLONERANGE, IOC_W, MK_PTR(MK_STRUCT(STRUCT_file_clone_range)))
|
||||
#endif
|
||||
|
||||
-#ifdef FIGETBSZ
|
||||
IOCTL(FIGETBSZ, IOC_R, MK_PTR(TYPE_LONG))
|
||||
-#endif
|
||||
#ifdef CONFIG_FIEMAP
|
||||
IOCTL_SPECIAL(FS_IOC_FIEMAP, IOC_W | IOC_R, do_ioctl_fs_ioc_fiemap,
|
||||
MK_PTR(MK_STRUCT(STRUCT_fiemap)))
|
@ -1,67 +0,0 @@
|
||||
From: Dario Faggioli <dfaggioli@suse.com>
|
||||
Date: Wed, 28 Sep 2022 13:13:08 +0200
|
||||
Subject: linux-user: use "max" as default CPU model, to deal with x86_64-v2
|
||||
binaries
|
||||
|
||||
Git-commit: 0000000000000000000000000000000000000000
|
||||
References: bsc#1203684
|
||||
|
||||
The old "qemu64" model cannot run binaries compiled for, e.g.,
|
||||
x86_64-v2. This could be a problem because a couple of major
|
||||
distribution are switching to that as their baseline. In fact, errors
|
||||
like this one can be observed (if 'ls' is such a binary):
|
||||
|
||||
x86_64-linux-user/qemu-x86_64 /usr/bin/ls
|
||||
qemu: uncaught target signal 4 (Illegal instruction) - core dumped
|
||||
|
||||
Instead, using "max" as the CPU model, everything (of course) works:
|
||||
|
||||
export QEMU_CPU=max
|
||||
x86_64-linux-user/qemu-x86_64 /usr/bin/ls
|
||||
|
||||
This has been and is being discussed in several places, e.g.:
|
||||
https://lore.kernel.org/qemu-devel/20210607135843.196595-1-berrange@redhat.com/
|
||||
https://bugzilla.redhat.com/show_bug.cgi?id=2079915
|
||||
https://bugzilla.redhat.com/show_bug.cgi?id=2080133
|
||||
http:s//github.com/containers/podman/issues/14314
|
||||
|
||||
However, these are all about system-emulation/virtualization, which is
|
||||
indeed quite tricky. In fact, what would be a good alternative default
|
||||
CPU model to pick, in that case? At the same time, however, it's also
|
||||
less problematic. In fact, people using QEMU for that purpose are likely
|
||||
in one of the following two situations already:
|
||||
1) they're starting QEMU manually, with a long and complex command line,
|
||||
for whatever specific reason. In that case, adding '-cpu host' (or
|
||||
whatever) to such long and complex command line, isn't a big deal;
|
||||
2) they're using QEMU via libvirt, which has its own fancy and
|
||||
convenient ways of determining the best CPU model, and the default
|
||||
"qemu64" one is pretty much never being used.
|
||||
|
||||
The case of Linux user emulation, however, it's a bit more tricky, as
|
||||
it's less convenient to actually pass any parameter to QEMU at all, in
|
||||
this scenario, so having to add one might be complicated. The same goes
|
||||
for having to define the QEMU_CPU environment variable. When doing Linux
|
||||
userspace emulation, though, a lot of the downsides of just using '-cpu
|
||||
host' as the default are non-issue (e.g., we do not need to think about
|
||||
migration!).
|
||||
|
||||
Therefore, while the topic remain complex and unsolved for system
|
||||
emulation, for Linux user, let's just switch and be happy.
|
||||
|
||||
Signed-off-by: Dario Faggioli <dfaggioli@suse.com>
|
||||
---
|
||||
linux-user/x86_64/target_elf.h | 2 +-
|
||||
1 file changed, 1 insertion(+), 1 deletion(-)
|
||||
|
||||
diff --git a/linux-user/x86_64/target_elf.h b/linux-user/x86_64/target_elf.h
|
||||
index 7b76a90de8805a84b4983f3b2bb9..3f628f8d66197faae698cbec4e24 100644
|
||||
--- a/linux-user/x86_64/target_elf.h
|
||||
+++ b/linux-user/x86_64/target_elf.h
|
||||
@@ -9,6 +9,6 @@
|
||||
#define X86_64_TARGET_ELF_H
|
||||
static inline const char *cpu_get_model(uint32_t eflags)
|
||||
{
|
||||
- return "qemu64";
|
||||
+ return "max";
|
||||
}
|
||||
#endif
|
@ -1,85 +0,0 @@
|
||||
From: Alexander Graf <agraf@suse.de>
|
||||
Date: Tue, 9 Oct 2012 09:06:49 +0200
|
||||
Subject: linux-user: use target_ulong
|
||||
|
||||
Linux syscalls pass pointers or data length or other information of that sort
|
||||
to the kernel. This is all stuff you don't want to have sign extended.
|
||||
Otherwise a host 64bit variable parameter with a size parameter will extend
|
||||
it to a negative number, breaking lseek for example.
|
||||
|
||||
Pass syscall arguments as ulong always.
|
||||
|
||||
Signed-off-by: Alexander Graf <agraf@suse.de>
|
||||
[JRZ: changes from linux-user/qemu.h wass moved to linux-user/user-internals.h]
|
||||
Signed-off-by: Jose R Ziviani <jziviani@suse.de>
|
||||
[DF: Forward port, i.e., use ulong for do_prctl too]
|
||||
Signed-off-by: Dario Faggioli <dfaggioli@suse.com>
|
||||
---
|
||||
linux-user/syscall.c | 20 ++++++++++----------
|
||||
linux-user/user-internals.h | 8 ++++----
|
||||
2 files changed, 14 insertions(+), 14 deletions(-)
|
||||
|
||||
diff --git a/linux-user/syscall.c b/linux-user/syscall.c
|
||||
index b746511fe5ba1c03cf44a14ed811..de782620fe3c9169a58e442a6f05 100644
|
||||
--- a/linux-user/syscall.c
|
||||
+++ b/linux-user/syscall.c
|
||||
@@ -6405,8 +6405,8 @@ static abi_long do_prctl_inval1(CPUArchState *env, abi_long arg2)
|
||||
#define do_prctl_sme_set_vl do_prctl_inval1
|
||||
#endif
|
||||
|
||||
-static abi_long do_prctl(CPUArchState *env, abi_long option, abi_long arg2,
|
||||
- abi_long arg3, abi_long arg4, abi_long arg5)
|
||||
+static abi_long do_prctl(CPUArchState *env, abi_ulong option, abi_ulong arg2,
|
||||
+ abi_ulong arg3, abi_ulong arg4, abi_ulong arg5)
|
||||
{
|
||||
abi_long ret;
|
||||
|
||||
@@ -8581,10 +8581,10 @@ _syscall2(int, pivot_root, const char *, new_root, const char *, put_old)
|
||||
* of syscall results, can be performed.
|
||||
* All errnos that do_syscall() returns must be -TARGET_<errcode>.
|
||||
*/
|
||||
-static abi_long do_syscall1(CPUArchState *cpu_env, int num, abi_long arg1,
|
||||
- abi_long arg2, abi_long arg3, abi_long arg4,
|
||||
- abi_long arg5, abi_long arg6, abi_long arg7,
|
||||
- abi_long arg8)
|
||||
+static abi_long do_syscall1(CPUArchState *cpu_env, int num, abi_ulong arg1,
|
||||
+ abi_ulong arg2, abi_ulong arg3, abi_ulong arg4,
|
||||
+ abi_ulong arg5, abi_ulong arg6, abi_ulong arg7,
|
||||
+ abi_ulong arg8)
|
||||
{
|
||||
CPUState *cpu = env_cpu(cpu_env);
|
||||
abi_long ret;
|
||||
@@ -13203,10 +13203,10 @@ static abi_long do_syscall1(CPUArchState *cpu_env, int num, abi_long arg1,
|
||||
return ret;
|
||||
}
|
||||
|
||||
-abi_long do_syscall(CPUArchState *cpu_env, int num, abi_long arg1,
|
||||
- abi_long arg2, abi_long arg3, abi_long arg4,
|
||||
- abi_long arg5, abi_long arg6, abi_long arg7,
|
||||
- abi_long arg8)
|
||||
+abi_long do_syscall(CPUArchState *cpu_env, int num, abi_ulong arg1,
|
||||
+ abi_ulong arg2, abi_ulong arg3, abi_ulong arg4,
|
||||
+ abi_ulong arg5, abi_ulong arg6, abi_ulong arg7,
|
||||
+ abi_ulong arg8)
|
||||
{
|
||||
CPUState *cpu = env_cpu(cpu_env);
|
||||
abi_long ret;
|
||||
diff --git a/linux-user/user-internals.h b/linux-user/user-internals.h
|
||||
index 0280e76addda504ea9745a17324b..1026e09da8caecf3e74159ea319e 100644
|
||||
--- a/linux-user/user-internals.h
|
||||
+++ b/linux-user/user-internals.h
|
||||
@@ -59,10 +59,10 @@ int info_is_fdpic(struct image_info *info);
|
||||
|
||||
void target_set_brk(abi_ulong new_brk);
|
||||
void syscall_init(void);
|
||||
-abi_long do_syscall(CPUArchState *cpu_env, int num, abi_long arg1,
|
||||
- abi_long arg2, abi_long arg3, abi_long arg4,
|
||||
- abi_long arg5, abi_long arg6, abi_long arg7,
|
||||
- abi_long arg8);
|
||||
+abi_long do_syscall(CPUArchState *cpu_env, int num, abi_ulong arg1,
|
||||
+ abi_ulong arg2, abi_ulong arg3, abi_ulong arg4,
|
||||
+ abi_ulong arg5, abi_ulong arg6, abi_ulong arg7,
|
||||
+ abi_ulong arg8);
|
||||
extern __thread CPUState *thread_cpu;
|
||||
G_NORETURN void cpu_loop(CPUArchState *env);
|
||||
abi_long get_errno(abi_long ret);
|
@ -1,62 +0,0 @@
|
||||
From: =?UTF-8?q?Daniel=20P=2E=20Berrang=C3=A9?= <berrange@redhat.com>
|
||||
Date: Tue, 4 Oct 2022 10:32:05 +0100
|
||||
Subject: meson: enforce a minimum Linux kernel headers version >= 4.18
|
||||
MIME-Version: 1.0
|
||||
Content-Type: text/plain; charset=UTF-8
|
||||
Content-Transfer-Encoding: 8bit
|
||||
|
||||
Git-commit: 0000000000000000000000000000000000000000
|
||||
Refereces: bsc#1204001
|
||||
|
||||
Various areas of QEMU have a dependency on Linux kernel header
|
||||
definitions. This falls under the scope of our supported platforms
|
||||
matrix, but historically we've not checked for a minimum kernel
|
||||
headers version. This has made it unclear when we can drop support
|
||||
for older kernel headers.
|
||||
|
||||
* Alpine 3.14: 5.10
|
||||
* CentOS 8: 4.18
|
||||
* CentOS 9: 5.14
|
||||
* Debian 10: 4.19
|
||||
* Debian 11: 5.10
|
||||
* Fedora 35: 5.19
|
||||
* Fedora 36: 5.19
|
||||
* OpenSUSE 15.3: 5.3.0
|
||||
* Ubuntu 20.04: 5.4
|
||||
* Ubuntu 22.04: 5.15
|
||||
|
||||
The above ignores the 3rd version digit since distros update their
|
||||
packages periodically and such updates don't generally affect public
|
||||
APIs to the extent that it matters for our build time check.
|
||||
|
||||
Overall, we can set the baseline to 4.18 currently.
|
||||
|
||||
Signed-off-by: Daniel P. Berrangé <berrange@redhat.com>
|
||||
Signed-off-by: Dario Faggioli <dfaggioli@suse.com>
|
||||
---
|
||||
meson.build | 12 ++++++++++++
|
||||
1 file changed, 12 insertions(+)
|
||||
|
||||
diff --git a/meson.build b/meson.build
|
||||
index 41f693a822a7ec58085bb53a8518..6641e86c0107906bb07d6b35d54a 100644
|
||||
--- a/meson.build
|
||||
+++ b/meson.build
|
||||
@@ -248,6 +248,18 @@ if targetos == 'linux'
|
||||
add_project_arguments('-isystem', meson.current_source_dir() / 'linux-headers',
|
||||
'-isystem', 'linux-headers',
|
||||
language: ['c', 'cpp'])
|
||||
+
|
||||
+ if not cc.compiles('''
|
||||
+ #include <linux/version.h>
|
||||
+ int main(void) {
|
||||
+#if LINUX_VERSION_CODE < KERNEL_VERSION(4, 18, 0)
|
||||
+#error "QEMU requires Linux kernel headers version >= 4.18.0"
|
||||
+#endif
|
||||
+ return 0;
|
||||
+ }''')
|
||||
+ error('QEMU requires Linux kernel headers version >= 4.18.0')
|
||||
+endif
|
||||
+
|
||||
endif
|
||||
|
||||
add_project_arguments('-iquote', '.',
|
@ -1,32 +0,0 @@
|
||||
From: Bruce Rogers <brogers@suse.com>
|
||||
Date: Fri, 28 Aug 2020 13:50:40 -0600
|
||||
Subject: meson: install ivshmem-client and ivshmem-server
|
||||
|
||||
Turn on the meson install flag for these executables
|
||||
|
||||
Signed-off-by: Bruce Rogers <brogers@suse.com>
|
||||
---
|
||||
contrib/ivshmem-client/meson.build | 2 +-
|
||||
contrib/ivshmem-server/meson.build | 2 +-
|
||||
2 files changed, 2 insertions(+), 2 deletions(-)
|
||||
|
||||
diff --git a/contrib/ivshmem-client/meson.build b/contrib/ivshmem-client/meson.build
|
||||
index ce8dcca84ddb23de1d8eaa813f5a..bc77336258302e0f7a962ef47ed6 100644
|
||||
--- a/contrib/ivshmem-client/meson.build
|
||||
+++ b/contrib/ivshmem-client/meson.build
|
||||
@@ -1,4 +1,4 @@
|
||||
executable('ivshmem-client', files('ivshmem-client.c', 'main.c'), genh,
|
||||
dependencies: glib,
|
||||
build_by_default: targetos == 'linux',
|
||||
- install: false)
|
||||
+ install: true)
|
||||
diff --git a/contrib/ivshmem-server/meson.build b/contrib/ivshmem-server/meson.build
|
||||
index c6c3c82e89f363e1929bfa08e318..185879a0c6ce71b1272a7ef6ce4d 100644
|
||||
--- a/contrib/ivshmem-server/meson.build
|
||||
+++ b/contrib/ivshmem-server/meson.build
|
||||
@@ -1,4 +1,4 @@
|
||||
executable('ivshmem-server', files('ivshmem-server.c', 'main.c'), genh,
|
||||
dependencies: [qemuutil, rt],
|
||||
build_by_default: targetos == 'linux',
|
||||
- install: false)
|
||||
+ install: true)
|
@ -1,35 +0,0 @@
|
||||
From: Dario Faggioli <dfaggioli@suse.com>
|
||||
Date: Tue, 20 Sep 2022 09:10:59 +0200
|
||||
Subject: meson: remove $pkgversion from CONFIG_STAMP input to broaden
|
||||
compatibility
|
||||
|
||||
Git-commit: 0000000000000000000000000000000000000000
|
||||
|
||||
As part of the effort to close the gap with Leap I think we are fine
|
||||
removing the $pkgversion component to creating a unique CONFIG_STAMP.
|
||||
This stamp is only used in creating a unique symbol used in ensuring the
|
||||
dynamically loaded modules correspond correctly to the loading qemu.
|
||||
The default inputs to producing this unique symbol are somewhat reasonable
|
||||
as a generic mechanism, but specific packaging and maintenance practices
|
||||
might require the default to be modified for best use. This is an example
|
||||
of that.
|
||||
|
||||
Signed-off-by: Bruce Rogers <brogers@suse.com>
|
||||
Signed-off-by: Dario Faggioli <dfaggioli@suse.com>
|
||||
---
|
||||
meson.build | 2 +-
|
||||
1 file changed, 1 insertion(+), 1 deletion(-)
|
||||
|
||||
diff --git a/meson.build b/meson.build
|
||||
index 20fddbd707c91c1baee604202fb1..41f693a822a7ec58085bb53a8518 100644
|
||||
--- a/meson.build
|
||||
+++ b/meson.build
|
||||
@@ -1736,7 +1736,7 @@ config_host_data.set_quoted('CONFIG_SYSCONFDIR', get_option('prefix') / get_opti
|
||||
if config_host.has_key('CONFIG_MODULES')
|
||||
config_host_data.set('CONFIG_STAMP', run_command(
|
||||
meson.current_source_dir() / 'scripts/qemu-stamp.py',
|
||||
- meson.project_version(), get_option('pkgversion'), '--',
|
||||
+ meson.project_version(), '--',
|
||||
meson.current_source_dir() / 'configure',
|
||||
capture: true, check: true).stdout().strip())
|
||||
endif
|
@ -1,60 +0,0 @@
|
||||
From: Zheyu Ma <zheyuma97@gmail.com>
|
||||
Date: Sun, 21 Aug 2022 20:43:43 +0800
|
||||
Subject: net: tulip: Restrict DMA engine to memories
|
||||
|
||||
Git-commit: 36a894aeb64a2e02871016da1c37d4a4ca109182
|
||||
References: bsc#1202665, CVE-2022-2962
|
||||
|
||||
The DMA engine is started by I/O access and then itself accesses the
|
||||
I/O registers, triggering a reentrancy bug.
|
||||
|
||||
The following log can reveal it:
|
||||
==5637==ERROR: AddressSanitizer: stack-overflow
|
||||
#0 0x5595435f6078 in tulip_xmit_list_update qemu/hw/net/tulip.c:673
|
||||
#1 0x5595435f204a in tulip_write qemu/hw/net/tulip.c:805:13
|
||||
#2 0x559544637f86 in memory_region_write_accessor qemu/softmmu/memory.c:492:5
|
||||
#3 0x5595446379fa in access_with_adjusted_size qemu/softmmu/memory.c:554:18
|
||||
#4 0x5595446372fa in memory_region_dispatch_write qemu/softmmu/memory.c
|
||||
#5 0x55954468b74c in flatview_write_continue qemu/softmmu/physmem.c:2825:23
|
||||
#6 0x559544683662 in flatview_write qemu/softmmu/physmem.c:2867:12
|
||||
#7 0x5595446833f3 in address_space_write qemu/softmmu/physmem.c:2963:18
|
||||
#8 0x5595435fb082 in dma_memory_rw_relaxed qemu/include/sysemu/dma.h:87:12
|
||||
#9 0x5595435fb082 in dma_memory_rw qemu/include/sysemu/dma.h:130:12
|
||||
#10 0x5595435fb082 in dma_memory_write qemu/include/sysemu/dma.h:171:12
|
||||
#11 0x5595435fb082 in stl_le_dma qemu/include/sysemu/dma.h:272:1
|
||||
#12 0x5595435fb082 in stl_le_pci_dma qemu/include/hw/pci/pci.h:910:1
|
||||
#13 0x5595435fb082 in tulip_desc_write qemu/hw/net/tulip.c:101:9
|
||||
#14 0x5595435f7e3d in tulip_xmit_list_update qemu/hw/net/tulip.c:706:9
|
||||
#15 0x5595435f204a in tulip_write qemu/hw/net/tulip.c:805:13
|
||||
|
||||
Fix this bug by restricting the DMA engine to memories regions.
|
||||
|
||||
Signed-off-by: Zheyu Ma <zheyuma97@gmail.com>
|
||||
Signed-off-by: Jason Wang <jasowang@redhat.com>
|
||||
Signed-off-by: Dario Faggioli <dfaggioli@suse.com>
|
||||
---
|
||||
hw/net/tulip.c | 4 ++--
|
||||
1 file changed, 2 insertions(+), 2 deletions(-)
|
||||
|
||||
diff --git a/hw/net/tulip.c b/hw/net/tulip.c
|
||||
index 097e905bec296dd1c5e96771ef63..b9e42c322ab1fb92416adfc5fda9 100644
|
||||
--- a/hw/net/tulip.c
|
||||
+++ b/hw/net/tulip.c
|
||||
@@ -70,7 +70,7 @@ static const VMStateDescription vmstate_pci_tulip = {
|
||||
static void tulip_desc_read(TULIPState *s, hwaddr p,
|
||||
struct tulip_descriptor *desc)
|
||||
{
|
||||
- const MemTxAttrs attrs = MEMTXATTRS_UNSPECIFIED;
|
||||
+ const MemTxAttrs attrs = { .memory = true };
|
||||
|
||||
if (s->csr[0] & CSR0_DBO) {
|
||||
ldl_be_pci_dma(&s->dev, p, &desc->status, attrs);
|
||||
@@ -88,7 +88,7 @@ static void tulip_desc_read(TULIPState *s, hwaddr p,
|
||||
static void tulip_desc_write(TULIPState *s, hwaddr p,
|
||||
struct tulip_descriptor *desc)
|
||||
{
|
||||
- const MemTxAttrs attrs = MEMTXATTRS_UNSPECIFIED;
|
||||
+ const MemTxAttrs attrs = { .memory = true };
|
||||
|
||||
if (s->csr[0] & CSR0_DBO) {
|
||||
stl_be_pci_dma(&s->dev, p, desc->status, attrs);
|
@ -1,23 +0,0 @@
|
||||
From: Bruce Rogers <brogers@suse.com>
|
||||
Date: Mon, 23 Nov 2020 07:06:37 -0700
|
||||
Subject: qboot: add cross.ini file to handle aarch64 based build
|
||||
|
||||
Signed-off-by: Bruce Rogers <brogers@suse.com>
|
||||
---
|
||||
cross.ini | 8 ++++++++
|
||||
1 file changed, 8 insertions(+)
|
||||
|
||||
diff --git a/roms/qboot/cross.ini b/roms/qboot/cross.ini
|
||||
new file mode 100644
|
||||
index 0000000000000000000000000000000000000000..4b3584da7e189efad7865450bf5310685c2e0f31
|
||||
--- /dev/null
|
||||
+++ b/roms/qboot/cross.ini
|
||||
@@ -0,0 +1,8 @@
|
||||
+[host_machine]
|
||||
+system = 'linux'
|
||||
+cpu_family = 'x86'
|
||||
+cpu = 'x86_64'
|
||||
+endian = 'little'
|
||||
+
|
||||
+[binaries]
|
||||
+c = 'x86_64-suse-linux-gcc'
|
BIN
qemu-7.1.0.tar.xz
(Stored with Git LFS)
BIN
qemu-7.1.0.tar.xz
(Stored with Git LFS)
Binary file not shown.
Binary file not shown.
3
qemu-9.0.0.obscpio
Normal file
3
qemu-9.0.0.obscpio
Normal file
@ -0,0 +1,3 @@
|
||||
version https://git-lfs.github.com/spec/v1
|
||||
oid sha256:c8a73ea50fffa698bd1e6ac4e6dc6dd0c397d03b519754974b739887f18b1a6c
|
||||
size 849561615
|
@ -1,27 +0,0 @@
|
||||
From: =?UTF-8?q?Andreas=20F=C3=A4rber?= <afaerber@suse.de>
|
||||
Date: Wed, 10 Aug 2016 19:00:24 +0200
|
||||
Subject: qemu-binfmt-conf: Modify default path
|
||||
MIME-Version: 1.0
|
||||
Content-Type: text/plain; charset=UTF-8
|
||||
Content-Transfer-Encoding: 8bit
|
||||
|
||||
Change QEMU_PATH from /usr/local/bin to /usr/bin prefix.
|
||||
|
||||
Signed-off-by: Andreas Färber <afaerber@suse.de>
|
||||
---
|
||||
scripts/qemu-binfmt-conf.sh | 2 +-
|
||||
1 file changed, 1 insertion(+), 1 deletion(-)
|
||||
|
||||
diff --git a/scripts/qemu-binfmt-conf.sh b/scripts/qemu-binfmt-conf.sh
|
||||
index 6ef9f118d9ffe39cfadcdf54168e..4115eaa121aabc17a417f5ef4955 100755
|
||||
--- a/scripts/qemu-binfmt-conf.sh
|
||||
+++ b/scripts/qemu-binfmt-conf.sh
|
||||
@@ -341,7 +341,7 @@ BINFMT_SET=qemu_register_interpreter
|
||||
SYSTEMDDIR="/etc/binfmt.d"
|
||||
DEBIANDIR="/usr/share/binfmts"
|
||||
|
||||
-QEMU_PATH=/usr/local/bin
|
||||
+QEMU_PATH=/usr/bin
|
||||
CREDENTIAL=no
|
||||
PERSISTENT=no
|
||||
PRESERVE_ARG0=no
|
@ -1,80 +0,0 @@
|
||||
From: Bruce Rogers <brogers@suse.com>
|
||||
Date: Tue, 2 Aug 2016 11:36:02 -0600
|
||||
Subject: qemu-bridge-helper: reduce security profile
|
||||
MIME-Version: 1.0
|
||||
Content-Type: text/plain; charset=UTF-8
|
||||
Content-Transfer-Encoding: 8bit
|
||||
|
||||
References: boo#988279
|
||||
|
||||
Change from using glib alloc and free routines to those
|
||||
from libc. Also perform safety measure of dropping privs
|
||||
to user if configured no-caps.
|
||||
|
||||
Signed-off-by: Bruce Rogers <brogers@suse.com>
|
||||
[AF: Rebased for v2.7.0-rc2]
|
||||
Signed-off-by: Andreas Färber <afaerber@suse.de>
|
||||
---
|
||||
qemu-bridge-helper.c | 28 +++++++++++++++++++++++++---
|
||||
1 file changed, 25 insertions(+), 3 deletions(-)
|
||||
|
||||
diff --git a/qemu-bridge-helper.c b/qemu-bridge-helper.c
|
||||
index a26e1663f02de3c99198df6e2080..f3483b0a344da4f82b6710551390 100644
|
||||
--- a/qemu-bridge-helper.c
|
||||
+++ b/qemu-bridge-helper.c
|
||||
@@ -124,7 +124,12 @@ static int parse_acl_file(const char *filename, ACLList *acl_list)
|
||||
}
|
||||
|
||||
if (strcmp(cmd, "deny") == 0) {
|
||||
- acl_rule = g_malloc(sizeof(*acl_rule));
|
||||
+ acl_rule = calloc(1, sizeof(*acl_rule));
|
||||
+ if (!acl_rule) {
|
||||
+ fclose(f);
|
||||
+ errno = ENOMEM;
|
||||
+ return -1;
|
||||
+ }
|
||||
if (strcmp(arg, "all") == 0) {
|
||||
acl_rule->type = ACL_DENY_ALL;
|
||||
} else {
|
||||
@@ -133,7 +138,12 @@ static int parse_acl_file(const char *filename, ACLList *acl_list)
|
||||
}
|
||||
QSIMPLEQ_INSERT_TAIL(acl_list, acl_rule, entry);
|
||||
} else if (strcmp(cmd, "allow") == 0) {
|
||||
- acl_rule = g_malloc(sizeof(*acl_rule));
|
||||
+ acl_rule = calloc(1, sizeof(*acl_rule));
|
||||
+ if (!acl_rule) {
|
||||
+ fclose(f);
|
||||
+ errno = ENOMEM;
|
||||
+ return -1;
|
||||
+ }
|
||||
if (strcmp(arg, "all") == 0) {
|
||||
acl_rule->type = ACL_ALLOW_ALL;
|
||||
} else {
|
||||
@@ -438,6 +448,18 @@ int main(int argc, char **argv)
|
||||
goto cleanup;
|
||||
}
|
||||
|
||||
+#ifndef CONFIG_LIBCAP
|
||||
+ /*
|
||||
+ * avoid sending the fd as root user if running suid to not fool
|
||||
+ * peer credentials to daemons that dont expect that
|
||||
+ */
|
||||
+ if (setuid(getuid()) < 0) {
|
||||
+ fprintf(stderr, "Failed to drop privileges.\n");
|
||||
+ ret = EXIT_FAILURE;
|
||||
+ goto cleanup;
|
||||
+ }
|
||||
+#endif
|
||||
+
|
||||
/* write fd to the domain socket */
|
||||
if (send_fd(unixfd, fd) == -1) {
|
||||
fprintf(stderr, "failed to write fd to unix socket: %s\n",
|
||||
@@ -459,7 +481,7 @@ cleanup:
|
||||
}
|
||||
while ((acl_rule = QSIMPLEQ_FIRST(&acl_list)) != NULL) {
|
||||
QSIMPLEQ_REMOVE_HEAD(&acl_list, entry);
|
||||
- g_free(acl_rule);
|
||||
+ free(acl_rule);
|
||||
}
|
||||
|
||||
return ret;
|
@ -1,14 +0,0 @@
|
||||
[Unit]
|
||||
Description=QEMU Guest Agent
|
||||
Documentation=http://wiki.qemu.org/Features/GuestAgent
|
||||
BindsTo=dev-virtio\x2dports-org.qemu.guest_agent.0.device
|
||||
After=dev-virtio\x2dports-org.qemu.guest_agent.0.device
|
||||
|
||||
[Service]
|
||||
Type=simple
|
||||
ExecStart=-/usr/bin/qemu-ga -p /dev/virtio-ports/org.qemu.guest_agent.0
|
||||
Restart=always
|
||||
RestartSec=0
|
||||
|
||||
[Install]
|
||||
WantedBy=dev-virtio\x2dports-org.qemu.guest_agent.0.device
|
23
qemu-ifup
23
qemu-ifup
@ -1,23 +0,0 @@
|
||||
#!/bin/sh
|
||||
|
||||
# sample bridge qemu-ifup script
|
||||
|
||||
echo 'configuring qemu network with bridge for' $*
|
||||
|
||||
# If bridge is not specified, try device with default route.
|
||||
bridge=$2
|
||||
if [ -z "$bridge" ]; then
|
||||
bridge=$(/usr/sbin/ip route list | /usr/bin/awk '/^default / { print $5 }')
|
||||
fi
|
||||
|
||||
# Exit if $bridge is not a bridge. Exit with 0 status
|
||||
# so qemu process is not terminated and provide message
|
||||
# about failure to setup network.
|
||||
if [ ! -e "/sys/class/net/${bridge}/bridge" ]
|
||||
then
|
||||
echo "WARNING! ${bridge} is not a bridge. qemu-ifup exiting. VM may not have a functioning networking stack."
|
||||
exit 0
|
||||
fi
|
||||
|
||||
/usr/sbin/ip link set $1 up
|
||||
/usr/sbin/ip link set $1 master $bridge || true
|
@ -1,3 +0,0 @@
|
||||
version https://git-lfs.github.com/spec/v1
|
||||
oid sha256:b1b92b2e22f846e4f7c692d8466f3865fbb95c2523aee7fc0a06524a39061e94
|
||||
size 47
|
352
qemu-linux-user.spec
Normal file
352
qemu-linux-user.spec
Normal file
@ -0,0 +1,352 @@
|
||||
#
|
||||
# spec file for package qemu-linux-user
|
||||
#
|
||||
# Copyright (c) 2024 SUSE LLC
|
||||
#
|
||||
# All modifications and additions to the file contributed by third parties
|
||||
# remain the property of their copyright owners, unless otherwise agreed
|
||||
# upon. The license for this file, and modifications and additions to the
|
||||
# file, is the same license as for the pristine package itself (unless the
|
||||
# license for the pristine package is not an Open Source License, in which
|
||||
# case the license is the MIT License). An "Open Source License" is a
|
||||
# license that conforms to the Open Source Definition (Version 1.9)
|
||||
# published by the Open Source Initiative.
|
||||
|
||||
# Please submit bugfixes or comments via https://bugs.opensuse.org/
|
||||
#
|
||||
|
||||
|
||||
%include %{_sourcedir}/common.inc
|
||||
|
||||
%ifarch %ix86 x86_64 s390x
|
||||
%define legacy_qemu_kvm 1
|
||||
%endif
|
||||
|
||||
Name: qemu-linux-user
|
||||
URL: https://www.qemu.org/
|
||||
Summary: CPU emulator for user space
|
||||
License: BSD-2-Clause AND BSD-3-Clause AND GPL-2.0-only AND GPL-2.0-or-later AND LGPL-2.1-or-later AND MIT
|
||||
Group: System/Emulators/PC
|
||||
Version: 9.0.1
|
||||
Release: 0
|
||||
Source0: qemu-%{version}.tar.xz
|
||||
Source1: common.inc
|
||||
Source200: qemu-rpmlintrc
|
||||
Source303: README.PACKAGING
|
||||
Source1000: qemu-rpmlintrc
|
||||
BuildRoot: %{_tmppath}/%{name}-%{version}-build
|
||||
BuildRequires: bison
|
||||
BuildRequires: glib2-devel-static >= 2.56
|
||||
BuildRequires: glibc-devel-static
|
||||
BuildRequires: (pcre-devel-static if glib2-devel-static < 2.73 else pcre2-devel-static)
|
||||
# passing filelist check for /usr/lib/binfmt.d
|
||||
BuildRequires: systemd
|
||||
BuildRequires: zlib-devel-static
|
||||
# we must not install the qemu-linux-user package when under QEMU build
|
||||
%if 0%{?qemu_user_space_build:1}
|
||||
#!BuildIgnore: post-build-checks
|
||||
%endif
|
||||
BuildRequires: discount
|
||||
BuildRequires: fdupes
|
||||
BuildRequires: flex
|
||||
BuildRequires: gcc-c++
|
||||
BuildRequires: meson
|
||||
BuildRequires: ninja >= 1.7
|
||||
%if 0%{?suse_version} >= 1600
|
||||
BuildRequires: python3-Sphinx
|
||||
BuildRequires: python3-base >= 3.8
|
||||
%else
|
||||
BuildRequires: python311-Sphinx
|
||||
BuildRequires: python311-base
|
||||
%endif
|
||||
|
||||
%description
|
||||
QEMU provides CPU emulation along with other related capabilities. This package
|
||||
provides programs to run user space binaries and libraries meant for another
|
||||
architecture. The syscall interface is intercepted and execution below the
|
||||
syscall layer occurs on the native hardware and operating system.
|
||||
|
||||
%files
|
||||
%doc README.rst VERSION
|
||||
%license COPYING COPYING.LIB LICENSE
|
||||
%_bindir/qemu-aarch64
|
||||
%_bindir/qemu-aarch64_be
|
||||
%_bindir/qemu-alpha
|
||||
%_bindir/qemu-arm
|
||||
%_bindir/qemu-armeb
|
||||
%_bindir/qemu-cris
|
||||
%_bindir/qemu-hexagon
|
||||
%_bindir/qemu-hppa
|
||||
%_bindir/qemu-i386
|
||||
%_bindir/qemu-loongarch64
|
||||
%_bindir/qemu-m68k
|
||||
%_bindir/qemu-microblaze
|
||||
%_bindir/qemu-microblazeel
|
||||
%_bindir/qemu-mips
|
||||
%_bindir/qemu-mips64
|
||||
%_bindir/qemu-mips64el
|
||||
%_bindir/qemu-mipsel
|
||||
%_bindir/qemu-mipsn32
|
||||
%_bindir/qemu-mipsn32el
|
||||
%_bindir/qemu-nios2
|
||||
%_bindir/qemu-or1k
|
||||
%_bindir/qemu-ppc
|
||||
%_bindir/qemu-ppc64
|
||||
%_bindir/qemu-ppc64le
|
||||
%_bindir/qemu-riscv32
|
||||
%_bindir/qemu-riscv64
|
||||
%_bindir/qemu-s390x
|
||||
%_bindir/qemu-sh4
|
||||
%_bindir/qemu-sh4eb
|
||||
%_bindir/qemu-sparc
|
||||
%_bindir/qemu-sparc32plus
|
||||
%_bindir/qemu-sparc64
|
||||
%_bindir/qemu-x86_64
|
||||
%_bindir/qemu-xtensa
|
||||
%_bindir/qemu-xtensaeb
|
||||
%_sbindir/qemu-binfmt-conf.sh
|
||||
%_prefix/lib/binfmt.d/qemu-*.conf
|
||||
|
||||
%prep
|
||||
%autosetup -n qemu-%{version} -p1
|
||||
|
||||
# We have the meson subprojects there, but as submodules (because OBS
|
||||
# SCM bridge can handle the latter, but not the former) so we need to
|
||||
# apply the layering of the packagefiles manually
|
||||
meson subprojects packagefiles --apply berkeley-testfloat-3
|
||||
meson subprojects packagefiles --apply berkeley-softfloat-3
|
||||
|
||||
%build
|
||||
|
||||
%define rpmfilesdir %{_builddir}/qemu-%{version}/rpm
|
||||
|
||||
%if %{legacy_qemu_kvm}
|
||||
# FIXME: Why are we copying the s390 specific one?
|
||||
cp %{rpmfilesdir}/supported.s390.txt docs/supported.rst
|
||||
sed -i '/^\ \ \ about\/index.*/i \ \ \ supported.rst' docs/index.rst
|
||||
%endif
|
||||
|
||||
find . -iname ".git" -exec rm -rf {} +
|
||||
|
||||
mkdir -p %blddir
|
||||
cd %blddir
|
||||
|
||||
# We define a few general and common options and then we disable
|
||||
# pretty much everything. Afterwards, there is a section for each
|
||||
# of the flavors where we explicitly enable all the feature we want
|
||||
# for them.
|
||||
|
||||
# TODO: Check whether we want to enable the followings:
|
||||
# * avx512f
|
||||
# * debug-info
|
||||
# * fuse
|
||||
# * malloc-trim
|
||||
# * multiprocess
|
||||
# * qom-cast-debug
|
||||
# * trace-backends=dtrace
|
||||
#
|
||||
# Fedora has avx2 enabled for ix86, while we can't (I tried). Guess it's
|
||||
# because, for them, ix86 == i686 (while for us it's i586).
|
||||
|
||||
# Let's try to stick to _FORTIFY_SOURCE=2 for now
|
||||
EXTRA_CFLAGS="$(echo %{optflags} | sed -E 's/-[A-Z]?_FORTIFY_SOURCE[=]?[0-9]*//g') -U_FORTIFY_SOURCE -D_FORTIFY_SOURCE=2 -Wno-error"
|
||||
|
||||
%srcdir/configure \
|
||||
%if 0%{?suse_version} >= 1600
|
||||
--python=%_bindir/python3 \
|
||||
%else
|
||||
--python=%_bindir/python3.11 \
|
||||
%endif
|
||||
--docdir=%_docdir \
|
||||
--datadir=%_datadir \
|
||||
--extra-cflags="${EXTRA_CFLAGS}" \
|
||||
--firmwarepath=%_datadir/%name \
|
||||
--libdir=%_libdir \
|
||||
--libexecdir=%_libexecdir \
|
||||
--localstatedir=%_localstatedir \
|
||||
--prefix=%_prefix \
|
||||
--sysconfdir=%_sysconfdir \
|
||||
--with-pkgversion="%(echo '%{distro}' | sed 's/ (.*)//')" \
|
||||
--disable-af-xdp \
|
||||
--disable-alsa \
|
||||
--disable-attr \
|
||||
--disable-auth-pam \
|
||||
--disable-avx2 \
|
||||
--disable-avx512f \
|
||||
--disable-block-drv-whitelist-in-tools \
|
||||
--disable-bochs \
|
||||
--disable-bpf \
|
||||
--disable-brlapi \
|
||||
--disable-bsd-user \
|
||||
--disable-bzip2 \
|
||||
--disable-cap-ng \
|
||||
--disable-capstone \
|
||||
--disable-cfi \
|
||||
--disable-cfi-debug \
|
||||
--disable-cloop \
|
||||
--disable-cocoa \
|
||||
--disable-coreaudio \
|
||||
--disable-coroutine-pool \
|
||||
--disable-crypto-afalg \
|
||||
--disable-curl \
|
||||
--disable-curses \
|
||||
--disable-dbus-display \
|
||||
--disable-debug-info \
|
||||
--disable-debug-mutex \
|
||||
--disable-debug-tcg \
|
||||
--disable-dmg \
|
||||
--disable-docs \
|
||||
--disable-download \
|
||||
--disable-dsound \
|
||||
--disable-fdt \
|
||||
--disable-fuse \
|
||||
--disable-fuse-lseek \
|
||||
--disable-gcrypt \
|
||||
--disable-gettext \
|
||||
--disable-gio \
|
||||
--disable-glusterfs \
|
||||
--disable-gnutls \
|
||||
--disable-gtk \
|
||||
--disable-guest-agent \
|
||||
--disable-guest-agent-msi \
|
||||
--disable-hv-balloon \
|
||||
--disable-hvf \
|
||||
--disable-iconv \
|
||||
--disable-jack \
|
||||
--disable-kvm \
|
||||
--disable-l2tpv3 \
|
||||
--disable-libdaxctl \
|
||||
--disable-libiscsi \
|
||||
--disable-libkeyutils \
|
||||
--disable-libnfs \
|
||||
--disable-libpmem \
|
||||
--disable-libssh \
|
||||
--disable-libudev \
|
||||
--disable-libusb \
|
||||
--disable-linux-aio \
|
||||
--disable-linux-io-uring \
|
||||
--disable-linux-user \
|
||||
--disable-live-block-migration \
|
||||
--disable-lto \
|
||||
--disable-lzfse \
|
||||
--disable-lzo \
|
||||
--disable-malloc-trim \
|
||||
--disable-membarrier \
|
||||
--disable-module-upgrades \
|
||||
--disable-modules \
|
||||
--disable-mpath \
|
||||
--disable-multiprocess \
|
||||
--disable-netmap \
|
||||
--disable-nettle \
|
||||
--disable-numa \
|
||||
--disable-nvmm \
|
||||
--disable-opengl \
|
||||
--disable-oss \
|
||||
--disable-pa \
|
||||
--disable-parallels \
|
||||
--disable-pie \
|
||||
--disable-pipewire \
|
||||
--disable-pixman \
|
||||
--disable-plugins \
|
||||
--disable-png \
|
||||
--disable-pvrdma \
|
||||
--disable-qcow1 \
|
||||
--disable-qed \
|
||||
--disable-qom-cast-debug \
|
||||
--disable-rbd \
|
||||
--disable-rdma \
|
||||
--disable-relocatable \
|
||||
--disable-replication \
|
||||
--disable-rng-none \
|
||||
--disable-rutabaga-gfx \
|
||||
--disable-safe-stack \
|
||||
--disable-sanitizers \
|
||||
--disable-sdl \
|
||||
--disable-sdl-image \
|
||||
--disable-seccomp \
|
||||
--disable-selinux \
|
||||
--disable-slirp \
|
||||
--disable-slirp-smbd \
|
||||
--disable-smartcard \
|
||||
--disable-snappy \
|
||||
--disable-sparse \
|
||||
--disable-spice \
|
||||
--disable-spice-protocol \
|
||||
--disable-strip \
|
||||
--disable-system \
|
||||
--disable-tcg \
|
||||
--disable-tcg-interpreter \
|
||||
--disable-tools \
|
||||
--disable-tpm \
|
||||
--disable-u2f \
|
||||
--disable-usb-redir \
|
||||
--disable-user \
|
||||
--disable-vde \
|
||||
--disable-vdi \
|
||||
--disable-vhost-crypto \
|
||||
--disable-vhost-kernel \
|
||||
--disable-vhost-net \
|
||||
--disable-vhost-user \
|
||||
--disable-vhost-user-blk-server \
|
||||
--disable-vhost-vdpa \
|
||||
--disable-virglrenderer \
|
||||
--disable-virtfs \
|
||||
--disable-vnc \
|
||||
--disable-vnc-jpeg \
|
||||
--disable-vnc-sasl \
|
||||
--disable-vte \
|
||||
--disable-vvfat \
|
||||
--disable-werror \
|
||||
--disable-whpx \
|
||||
--disable-xen \
|
||||
--disable-xen-pci-passthrough \
|
||||
--disable-xkbcommon \
|
||||
--disable-zstd \
|
||||
--without-default-devices \
|
||||
%if %{with system_membarrier}
|
||||
--enable-membarrier \
|
||||
%endif
|
||||
%if %{with malloc_trim}
|
||||
--enable-malloc-trim \
|
||||
%endif
|
||||
%if "%{_lto_cflags}" != "%{nil}"
|
||||
--enable-lto \
|
||||
%endif
|
||||
--disable-install-blobs \
|
||||
--enable-attr \
|
||||
--enable-coroutine-pool \
|
||||
--enable-linux-user \
|
||||
--enable-selinux \
|
||||
--enable-tcg \
|
||||
--static
|
||||
|
||||
echo "=== Content of config-host.mak: ==="
|
||||
cat config-host.mak
|
||||
echo "=== ==="
|
||||
|
||||
%make_build
|
||||
|
||||
%install
|
||||
cd %blddir
|
||||
|
||||
%make_build install DESTDIR=%{buildroot}
|
||||
|
||||
rm -rf %{buildroot}%_datadir/qemu/keymaps
|
||||
unlink %{buildroot}%_datadir/qemu/trace-events-all
|
||||
install -d -m 755 %{buildroot}%_sbindir
|
||||
install -m 755 scripts/qemu-binfmt-conf.sh %{buildroot}%_sbindir
|
||||
install -d -m 755 %{buildroot}%{_prefix}/lib/binfmt.d/
|
||||
scripts/qemu-binfmt-conf.sh --systemd ALL --persistent yes --preserve-argv0 yes --exportdir %{buildroot}%{_prefix}/lib/binfmt.d/
|
||||
|
||||
%fdupes -s %{buildroot}
|
||||
|
||||
%check
|
||||
cd %blddir
|
||||
|
||||
%ifarch aarch64 %ix86 ppc ppc64 ppc64le riscv64 s390x x86_64
|
||||
./qemu-%{qemu_arch} %_bindir/ls > /dev/null
|
||||
%endif
|
||||
|
||||
%make_build check-softfloat
|
||||
|
||||
%changelog
|
@ -1,81 +0,0 @@
|
||||
#!/bin/bash
|
||||
#############################################################
|
||||
# Name: Supportconfig Plugin for QEMU/KVM
|
||||
# Description: Gathers important troubleshooting information
|
||||
# about QEMU
|
||||
# Author: Jim Fehlig <jfehlig@suse.com>
|
||||
#############################################################
|
||||
|
||||
RCFILE="/usr/lib/supportconfig/resources/scplugin.rc"
|
||||
|
||||
if [ -s $RCFILE ]; then
|
||||
if ! source $RCFILE; then
|
||||
echo "ERROR: Initializing resource file: $RCFILE" >&2
|
||||
exit 1
|
||||
fi
|
||||
fi
|
||||
|
||||
rpm_verify() {
|
||||
thisrpm="$1"
|
||||
local ret=0
|
||||
|
||||
echo
|
||||
echo "#==[ Validating RPM ]=================================#"
|
||||
if rpm -q "$thisrpm" >/dev/null 2>&1; then
|
||||
echo "# rpm -V $thisrpm"
|
||||
|
||||
if rpm -V "$thisrpm"; then
|
||||
echo "Status: Passed"
|
||||
else
|
||||
echo "Status: WARNING"
|
||||
fi
|
||||
else
|
||||
echo "package $thisrpm is not installed"
|
||||
ret=1
|
||||
fi
|
||||
echo
|
||||
return $ret
|
||||
}
|
||||
|
||||
if ! rpm_verify qemu; then
|
||||
echo "Skipped"
|
||||
exit 0
|
||||
fi
|
||||
|
||||
# skip if the host is xen
|
||||
echo "#==[ Checking if booted Xen ]=================================#"
|
||||
if [ -d /proc/xen ] && [ -e /proc/xen/capabilities ] && [ `cat /proc/xen/capabilities` = "control_d" ]; then
|
||||
echo "Yes"
|
||||
echo "Skipped"
|
||||
exit 0
|
||||
else
|
||||
echo "No"
|
||||
echo
|
||||
fi
|
||||
|
||||
# basic system information
|
||||
plugin_command "uname -r"
|
||||
plugin_command "lscpu"
|
||||
plugin_command "lspci -v"
|
||||
plugin_command "lsscsi"
|
||||
plugin_command "kvm_stat -1"
|
||||
plugin_command "lsmod | grep ^kvm"
|
||||
for MODULE in `lsmod | grep ^kvm | cut -d ' ' -f 1`; do
|
||||
plugin_command "modinfo $MODULE"
|
||||
done
|
||||
plugin_command "ps -ef | grep qemu"
|
||||
|
||||
# list contents of common config and image directories
|
||||
plugin_command "ls -alR /var/lib/libvirt/images/"
|
||||
|
||||
# network-related info often useful for debugging
|
||||
nm_enabled=$(systemctl is-enabled NetworkManager.service > /dev/null 2>&1; echo $?)
|
||||
if [ $nm_enabled -eq 0 ]; then
|
||||
echo "NOTE: NetworkManager should not be enabled on a KVM host"
|
||||
fi
|
||||
plugin_command "ip route list"
|
||||
plugin_command "ip neigh list"
|
||||
plugin_command "ip link show type bridge"
|
||||
plugin_command "bridge link show"
|
||||
|
||||
echo "Done"
|
994
qemu.changes
994
qemu.changes
File diff suppressed because it is too large
Load Diff
493
qemu.keyring
493
qemu.keyring
@ -1,493 +0,0 @@
|
||||
-----BEGIN PGP PUBLIC KEY BLOCK-----
|
||||
|
||||
mQENBFJhQQ8BCAChk4A3y0VfqeGfuhBZK4nvpZP/cSIQntWDheF3Tx7m9CxEGbc+
|
||||
5aHxfrvm45LSjwPCK020WjeqYX2UFQfcvcjoW6iMbth1BLydu11vx6Gk/CJuB7Ss
|
||||
8AbyvEXBcOfHbginUdqr4nwLD9e8qlVxRFbSHfbFRbuybZghke4y1pZzekkqbseT
|
||||
kahkWHxr6o1EGAjyIdjAq1IQxewW6yJ4rkHWsRvfv3sUQTqBU+wT180kdwC8AAv6
|
||||
q6TX4um0HGR46uJ+5SG8DYb00kRMckQtYpTuwuUmlAvNh/qLg2fVVMEiHBpcuIiV
|
||||
h7x8INuq94vc+tgxmr0bomIWIZljMQ7vp8ixABEBAAG0IE1pY2hhZWwgUm90aCA8
|
||||
bWRyb3RoQHV0ZXhhcy5lZHU+iEYEEBECAAYFAlJnyVsACgkQ7To545NnTEBCPgCe
|
||||
LEpKLAf5zhYpDalP49ksqzKaTaIAn2sp4fE8wraAV6yhPPy8/eXGiy4uiQEcBBAB
|
||||
AgAGBQJSaPcsAAoJEJykq7OBq3PI0BwH/33W3cektSdUsEeEb2yeUw+qKKi54H3e
|
||||
fGZ5w4fx7L2zXCQOuVPWx/+4Gzr7IosmV8eNIfDpsmhSLOHfP4aS8FYjF5JZ9ry0
|
||||
671p2vMvsH7ptrFLNZJ+JV8kbcH8nSEk0Lj4zM2tROlLCwdtCLpE4pvT60UTWYdO
|
||||
ltMNfx5U2/Xs97OkccstQmtWRB0KiQ+h0WM/RSVlkvaPAcHAebTxWRYoagWBvbYY
|
||||
5zwILPyVPeUrQtGpeDMNg6tEnRIYDLMDkVXugtfqsIxrYwOH1G9JyZJKvY1Qp6/c
|
||||
AGBfoZboUdZwYgPO//3X9yo4bKxQ0pEsymOty3mvPcfuYh86Bw5AFT+JARwEEAEC
|
||||
AAYFAlXWjX8ACgkQUhGOPAsp2mvjrQgAqTX+lrL3rKyhHOF9UZF+fKmPP5KnuQhG
|
||||
aLbnxVieeC5uVf5C6iWJ8/xsrWbg8iOYxiVluOy90duCuBFFmoWrjibyASaBJ/MT
|
||||
gQ6HjcYfKzsftBmfwlLRyFJDT0zGemd3yrP3zHBF1hrDP65EFUwJkTQ/ywZXfTQG
|
||||
pJscv2V4lc2WA0OfTxpknoh1hlgCK7GEDgB0ROkAY99r5+TUYkzABlyiUbVN2S4E
|
||||
sVB3TlnnVCSZILtL1wPlzkn46TJB752uZRySSyYgMED+Y+Em5IgZgCu9TFpfv3k+
|
||||
irKFLEuFwg5oQ1DQkbvSNNe9+ya5DYZGWVDwt9JJKZKjUbdSuX+CL4kBHAQRAQgA
|
||||
BgUCUm5rYwAKCRCnoWtKJSdDasGfCACJlDnjkLc8A2wgpnV7yh3ddWrm05j74pNv
|
||||
x9NZeUuqRLgnhV8Jo2cVNvKYQovWJZpoXRPpqMzfPltCsWSihBnn90GX6aZtZVmL
|
||||
2PiFDsAx3u13uQe3OmMUS8JXZsRx3K5xMyDHtEBUddqtJ2jlgBgZewQU36jZtPG8
|
||||
2c71r1NBwU4HTjwXQm5cEME7Rma3eM0QiC5ostmKrAN8jJcGp6YSwZGIPcRGUMXb
|
||||
Wa1G3QvBW++mkxU/XXWyiiVp1bgj7QYbAxj05YZiehIp07QlOyrX/JEQ62brlLl1
|
||||
DVO3JD+f20KYcazL33vh2efEWqpAyH1Su4S7mD/oBz8lojKqXuDtiQEcBBEBCAAG
|
||||
BQJV21l8AAoJEPQH2wBh1c9AfOgH/2yk4SrdeezTz7XIUC8al0mG6TUx+JGP951U
|
||||
VMsmBS0yj2zkvNSV4hfG/8THmejMipv0jqs4CjwkzqsNnJrzQXOxcIlkOjYE9GPf
|
||||
IyMM4WVd8/11t9HQIyqHmqnU9dFdniO/KUOBYWBeGyNhu+Ln5LiXh8kKqA+dZ7xs
|
||||
FptpTFLWhUGbb2vGS4e3g/pNjdVF/qNqC5qTLXsAZO3bTMCGFX58FmDwQv1UFJAa
|
||||
MXkoJjmwtVPBBCGxDgO1T+EZ6gkOjs+KssnpkYIaqpqnt557b1krVSfB6xNrCxv6
|
||||
8YhTJS3PQ6S6KI3j9u8G7PbToLoPzhyZqh4bO/PMnbIQoynsh/OJATgEEwECACIF
|
||||
AlJhQQ8CGwMGCwkIBwMCBhUIAgkKCwQWAgMBAh4BAheAAAoJEDNTyc7xCLWEAcUH
|
||||
/1dmjvgVggatJjzXiq6fbBYXVSLCWO3qkuvAl+mfkNAmYxGfpkwAnFdvtLs0TWNW
|
||||
+jQTzmbi3KSOJ1Zm+sW1OWMMGJVYoD7EdPyKnn5wsg6vmiDCxHu6ML5GTW7mdvwU
|
||||
hp+jcbtXytpdgjpPux84In7BRQizQDdLDs/saIBAu5p9D6MBSODtLREQ80G8ZqZn
|
||||
60gAnEvtsAAAJNZ7iFlQah1cm5U5+TuJzanlKl5PQTr893Ym0BxB2x2lEHjHkz32
|
||||
d5G3IR1k7/dJq6gfMiid5HGaXViuniGvbsaCvwj1YyiZTkTQgzPsdHd9FNBdV3lK
|
||||
xcouyK1Sp4oeZM4ufXO5e1SJAhwEEAECAAYFAlJnyV4ACgkQ0292m8EYBPDb2hAA
|
||||
y8414xjC03gTPfP/CK5osUzU7kG3aKwpYpC/eDpXdyYKyhY2oWjhEmwKtCva5QBr
|
||||
Zzcr3F2/bdF2rI4HRvxcILWzRRnqRp6SoEs6MVWmD3Y157qRoQvqVdvAQVBTD1X9
|
||||
Rovc5i5EfjRHkehg4Jg9XU3R/EdQdpw9+Bt6jTSZjUq9Rb52SsEr/Exm0Dnxzmvj
|
||||
EPgeX1J/lTFZ2VQ4bRV9Fhh2Xs330yNN0KCzPNgA08SoRcmoXmXcBuJdlFKaSN5c
|
||||
nET2km/5x6K7okDgwud32JJbv87Ud7zgGfi9HZI3kCRDBg8yMhOx8BpcTBwJ4hEZ
|
||||
rx1Zles1AQT1YJ8BVktt3HjgHlopk/0Qy6eXO6MGr9A2l9ZIuQW48P2guG+Gqhqf
|
||||
ggaviFMXhs2loXKuSFZn+yBhHNIQRFLuB3WWhnU/V+LrW+Oi//BRQKadU10cLpWO
|
||||
ezmsw3GKC6jRUPaysZ+jHO1fUzxlC/shD+2+U5KeiScDjkQTN3JWRMFpWSYXf375
|
||||
bIeEDmGqukeHnIFlSapDFQGLDpgH4PoVn6aRBUdbZ3rVDPhVXJvrnAR0uT7qfyvC
|
||||
p3oFt8RGYe1SUkp2zEBjf45cDAJdDwKae3HUZv+GjxUhhvXeUTbqXbhs+aBnFlgG
|
||||
My6mnUG35HCnjPmb4RbIZRjbw8HvHpGhgSU/eJ40UySJAhwEEAECAAYFAlJn+kMA
|
||||
CgkQUfnMkfg/oER7wA/+MZXdNsCPaRjz2Dwp9j0EvetixBxWFzYqMVYT3Hy0ahT9
|
||||
3YQNj4R+hfFYCipYHuy5nCtDebgrkAaLRTzmW/w13ZBxmJRkEul+/TnjyquV9obD
|
||||
PHLCkDJME/9985upeosOrevbQ7R9Fks6jYVeOg91BGRZsYW/6IOfg8F6J1nIQ4bC
|
||||
0jVMbD9XdbSXf7cA5HI/CDaQ5N7+4c5yWrhWH46nnZQkN8EoWp14MPl1KjaPRwJR
|
||||
l26E1ADGoFBRdJ6t9Vy/xiSOLGcANN/I7dDWsVtwnYokbFgQQtFgUeutfUYAnDIJ
|
||||
FexUo+XjxLxRj2Ff3JbROT7/RvwiZRjhbNcAaogpTuwOPeLEnuqKPAD6qaneE360
|
||||
1PmVHRla2+F82WTn2xeMzk11lIt2wddZHWAjonR/TPX7HiGf1ejbSeBP+jDAn6Z2
|
||||
K0pUE8/82qStyCGsjxTwf+49ysunL9nnQavGwOLZg51ysEJOJBl1E1FaETeWfz0T
|
||||
jQqo8sXq6EW1ejfCvhMvLbVpTNR+6/95SLQeyGEx04qIL7TAfRRpXwjVBU7SmKvK
|
||||
AEOkX4SjWFlK7ZxZYet+UzF4m65PIwz9fhDu1M4ggr8inrY6WssoL9d0rjDMGl2p
|
||||
S/go41sTiHAUZLpz70f+YkNcx7Tilp0AblYah7/CAqvEJL0M8Mda5Fp2wqHDoFqJ
|
||||
AhwEEAECAAYFAlJoZxkACgkQLtnXdP5wLbUhHw//bfVat5W/l3CSG+E6EHVEnF+d
|
||||
kPo7VJNMyF877wK3pWl7oFwHKmTnGOdxD4VXbX6AeWtz72BpPK4zmAAn6yjpDyYm
|
||||
V1UzLHmGexwDNOxkSscN3qByMEzjEgYOk8/tyr87iFycCgNZ08t63G8XFtyNYN6c
|
||||
dViE4gM+QdZcTxOCyZ72iXpFvI6FyobUT9AiKiKPCvZoaT38UkvuBH5vx2oHjpKj
|
||||
Aov5u57laxDb2tuVlPSNtuMaAtmlv9W+2jSPtk1tfmoLehKqHvgTwU8amxG0mNLj
|
||||
89E6ndPTnO8L+vcKXPaSytozQbbsD5jLWZS+kivmobAVADxkWdVI3u3xopsX9AUT
|
||||
YP+LNJ6XOoUqdBsFiGz0ciR4HyJVXrx8zhXnht+qO9SMq5ynpKW/eyqdCc1mBQQZ
|
||||
Fqyu0KhjHzV76Z/4zdjf7HweWSlL6iMnFTzdKHegaijoGRRFyPn50VsjX1cH7rZN
|
||||
5P7RipUO9reaqCEbP1NYrQjr80pvPOQlag/8MWdCwz5FesQQjOveP9fhWUBH+ms/
|
||||
gOZ42rckaTC3JmMP4FY+YFJhSLGYKrNc+sf6SkTA4JTkh382qddo+IAsLYKP9xZS
|
||||
BuWQAwULo3Cw6w1WYQcDS6cvAP/CgsyF3TqJBAHVXhjzGzQYwAdscQAIAM9G9eIm
|
||||
VHG6yLeZMZ2qMTiKnC6JAhwEEAECAAYFAlJujSIACgkQfwmycsiPL9Z7mRAAq5p0
|
||||
lP8Ca5Esfc1+G0mpgBdHuvvERaTYomWC4ce3JaqNDBBTOdwDq39hvsbUjxLb45G7
|
||||
RnXJy1xio02uKJj4O1ilkb0p7ez05UnHlE1D3AM1KUKOuk8SRxpHAwsBmBaKNRI7
|
||||
sFeNMUucvdJMKifyLLznxMYCDC2uzPfqacZZgHa2ZFalli8KChZ36FZ4gbgkWa8j
|
||||
5yoq5xK/9eFy+i/lzF1rrBg0P5WvSk4q68Slt+VJg0lJjJufKD89eh4+hzmaGD2U
|
||||
J8TCVD3nvZnYFLoVzCampW+RE9mr4Rm8iysWYlvVeY47o1bL72BYFDL9ouP3wscj
|
||||
v7UU66gbV8mGP2DShjpBkuysCSZhXrbwzImtZft6wSoEFs5GoyB6DEg94ckn7GJr
|
||||
gkXd228Ve93wArINiGQAdapSbZINX7KFIyoPYixhQda7EA9DUuXHdiREL2CC/Pd/
|
||||
LJ5Efa7UHSh7HWCYPH+KsZBl+ygz9uTufmMHQvTi0uUdUfS7cZ9dGs2IOkDiAn4P
|
||||
eB/z3puCgdfAP2bt4/Cz9VVrIomBiM3XCYW18bUebKnvgnh0dzvmQS13j3bdS5Zx
|
||||
g9Jx8TNQFYIlHXa7TLK+AGpTGHuDfXYfQqpwUV2VIoVTapw9jOF81caCXqCZe5h6
|
||||
VgPawmM576cDAGb4bwU+6K3l1drr8uNdrmqPwvOJAhwEEAECAAYFAlJ4Hj4ACgkQ
|
||||
twV3oWpW1nBLaxAAmQ4aBJ4bWOGP9bAENjLg72aNP7Q8JYOSCzu18Z/wwdwmIile
|
||||
5QIhFovHaYUpWweGwXxK8tHqRvmC2OMTVdAMx6nRksEmUzemw/DqfRgthZ2bDAc2
|
||||
OQ3uLmKUeVcatIyc7XO9BgjfvlpcAAcszutN/XZXSZJBZvEcFft+Mj3tuMZjr+Km
|
||||
wB0eTpvYQgbgu2lLjTTVUiQ1n3jFXkOKvfcGCQDU+afSAAHjuaVh93Ry9cGCpA1w
|
||||
EMxvd0l5TZ5QjBL9vsJBcXCPEF98TwB0CwR7JW2b1pdoz1/gkkCx9uGMBaupFCrB
|
||||
KAc3jgNuw8EpHm2BC7HLAYdLqZd1BspJNzfx8rU6yUjdmkC4bMBxSDpcsPxcLp+1
|
||||
kf3wmJBNu9NkoeVVO8vwDsc7OfLnYdKNRNErRhMo55bfrX4bYeHOy6XxL16EnzvW
|
||||
KPNY91dCaHUlgEcZwGWpmMFh1AXANAMD5fH/D2rplKCAeHy8qdYx2SGly6F9qrzo
|
||||
+aBdj1R+sp/uHl6ZL22PCkEU7Ci5f4piWd/2ht9leZf6v/0xCEgDKaSp6yGZLzKC
|
||||
rSoWT+AdNJIfV+ROQaXKjhTDFi8r7G9WOCF6xjkB/vozI8XzsfeuWcYGMpWsmYof
|
||||
lT9rZRQcRZfa9pNRVr/NJqFxrWEW+WrC2GaYjISVrGp9cmm3NgdfAEes2raJAhwE
|
||||
EAECAAYFAlKP+fkACgkQ0f8CSkqpINc4khAA0YliT+JgE8S9Xz4GK/9QPspO1ORd
|
||||
ai2anhDAawlDRjcaKBC+PribjoQDmEe1OUmmlO3UZVTk8xsPxei4SJsWqyuKgbiX
|
||||
sDEo4xHdHuRM5elMaR4n4uKj0FXrr9L3Xcc/ig0F34/6RLK47YgZB+ScA4bASdUv
|
||||
JQ7eZG4tCMEtZYoMJn6brlCIvo3wX/AagxLx3VnTrkpv4yExJXd10EvyEN8xBkCq
|
||||
l1bsptl3VAAS8dAfwX5YUmHRSX+dbPHYMjRxhUuOF6rSuJWP4bkwZi41uFCtvjDC
|
||||
V7rmpg8+62Ytn4OB9TGlhYRNW3ysBaWBZTya/Sfyufx+eQ0YMP6Xuz9WD8MCyBL5
|
||||
F+EUA8xcKLm/SjLp6iJJDNpuVNZdBPKTgEXvPpF1+G7rz1Kn9Zw1YTZvr59DPQYW
|
||||
tVf3UFDtVidpvQVtdQgwKzCUlUQN5AoZn27w1kI8sImJlo3330Gk44RDYwGOM7gI
|
||||
Zkg/HpqW9ZFlalKS2z6X7vfjGr0SoZb9/iATDSMiHVnQzH+U034ASkYYj8V8Ki4Q
|
||||
rri1UhKTmiMB1fFskqferjOK3w6Y83SC8Gbces1ymnZflYa36Or2NMEtYI3pbb2L
|
||||
seesh6Ko/j8SvjxR/io7m8aCwpzIQadjOVJTXKziLS1igvoPBFwN5S2U+2u5v5F5
|
||||
wayVEuuI/8zaqzeJAhwEEAECAAYFAlXXYOsACgkQTd4Q9wD/g1rHEg//Uul//b34
|
||||
fr6U9GcY1o3YLtDPUS/oc/wsg91T9uVlXDqDNEEuvI+FkxM979BL3vWED+TZzr4r
|
||||
EhPkDU3XXJcGgB1RwcF51mV8FWwn/lyqsIzVs7ILQ3oRSoZawg4MuJIoHqlb5IAP
|
||||
AEKKcP4KnRvNORsSuXmUO1fC3EDieq9BN/I2gGfY6vQTqZC7c5Os1FoGYIQl7ZWR
|
||||
2JhZ+EfeoShkZNYit8yFYVcqkr2Khv0tpdffM9X/RSh5i/SY6HfnuzlDbVr7OEtD
|
||||
bkYZWoGlX3JLZ8ei7JhO+pp8CLoa5TM8qFij0xiev2BoVEeW7KSuYFqzIY8pAJCC
|
||||
KNBzWjkUgsBkD5IaoF67lH07nszV21oOE2fVTsICDZYXyXZ3RCwmaFd7Bky5sJzU
|
||||
Ob9T0a1eU1vhaWnokBtkI8S9/VCZPIbona4z/ORgKgDn5eld6wRdFQ52Xny8xrA3
|
||||
6Q7Ii1AvdplAmQo9knxpomgREwgBYu52E5VPWZQJDpPoWxeiRjxMLe7GTon+/TnA
|
||||
DZEuJaobHWf4QeAv3K+YQoUk/IhYgjFu1KDWk5hGdXnRB8Z4s5s/W2ILdhViHwaY
|
||||
BlwMPERkz8TpVXASzaDJybUXK2bl1djuab2YdW9nGRR/HCAjwgoGdfsKaPooVe/E
|
||||
rKoZbCUjKw3eTxp58sg/topzt8fqOtf3RFGJAhwEEAEIAAYFAlXWhvgACgkQPCUl
|
||||
7RQ2DN7k4g/+Lc4pZDrcRi9dToQJgJki7Ac/aArrSUS+Vn0hGbkJI4G70716LNRO
|
||||
QnumP4MQaoONDzhv3/IgjRaX/4Sr21VG/iBtrn1d2VkFnHchl+WtQ1SaGul46srE
|
||||
i49pltI3WB8fckw8Fjf55z+18qd0FQan5I7PHFM1NPPkZsbgpbU85RRltgmzgWCk
|
||||
9cNXUoxzRVYkw3nKwa34rHBT30xybV0vfBLeDRGXkr16AeWV9cC/sD/eMKMmk4Mc
|
||||
HV1xE6obQPnvDIKTdUPyPslpb0LuGcpAVAbBAJXFFAFN9hDqblqsWQY+pWV6YeLQ
|
||||
YdpEnxr1iaRCaee2WAXaxiXuwIx3jKahxKJtWoYFkMqpSebq8Wt64wiAm4iiykNu
|
||||
q3oLsWcNXLVwg62RbhDCvT4me5Cgg35KTg67pJvkgD3oeabwplpOK1CuoQDFWrZY
|
||||
+R+OTSEW8vbaBBzSdevYeMlvo/uQnxods4whm72Nej5bBnp8EYkEtwIqGnK7Vv+f
|
||||
FJ8+SumcDFuegjGkLGxzpSNJsw/gHpgZJiojuLieTixiWL61f9Yk+sTuNsIUBMZW
|
||||
/GVS1ZId1eu8JCGfIY1iC6k5Q477zYw2TykajWLvzRvVp6+0/liaSHpEFpo/yals
|
||||
EAYySaHprg+qBZK3vUCBSdkQQijTHVIrpEBzq9U0OPmZlicvNEHI3O2JAhwEEgEC
|
||||
AAYFAlJv0BgACgkQCB/CnyQXht15tQ//WO9E1Z7LqlDzNU0V20NFBedXRD2QTA88
|
||||
RjuTIohMLZlWtvbE9mcVTILz3LzpuW26/cK9uJCDlDffcb03HyHHihS3aPWOnxxl
|
||||
kb1sZuxHSq9zHdshskqUwsJ7mEleHZ2lFnWCm/uLrvkuzxTPnvihe9YGO7QGnjMX
|
||||
AcDOn4BAFWlvYKXWcAxPeGF1Q+6Ouhyd94Eb7QoyrvA3m0KQ8crWnij1da5v7/VZ
|
||||
uCmS3pHQ+CMhz5MLVXunczQGMvwFviPhjzBAJnsG+IuM8UHa0kdNZr2MI4kdgeON
|
||||
he7RMZKwfXETUgn5kWt5EUnZ1LiCdjEBLompMkpkBi2kWof1XsUy1qy7rGGveOtT
|
||||
VYMf2cUDNpT/I7HlwteG5eGNnECH3mtCCEQyrJksK3tAa9dHKXRFBaLPW5RydQsh
|
||||
+1rHPqg5lx96320pINLyUjiYXsI/9hRuQtjoeQIzCr/Xd1dkgaRSGZeaca3fIj6o
|
||||
edHMnypxjUyfgWVGhkLzCHcmhq1JWN9MHP7dk5/ZjKJXzk0b1i4/80CyJng6dbOd
|
||||
HmZe6TKlrAGTcsI4zcGS8r6yNOFyWfjID74QhI2hOZBJViW0VF2isjMssxTTB1bd
|
||||
pxp2wyqg6g1xZwX4puI+6O4frzf4DKXLhjeS/DXbDAOAh8/G+DXNdimPLDra28bh
|
||||
HmmfHEySv1SJAhwEEgECAAYFAlJySQoACgkQHpo7X4VAg7Y2zw/9G7uqZZhffHNN
|
||||
zqzD0syvm24FtMEO4sXWITzc1VGKA/HiFubQlbne9r09ZlhhRdAwD0AqD6EBVe/D
|
||||
7F5PssazPnUw5eG6BQnt24BebcO0/M1EZCawmnJcszAyZt1LPjEjwRKwIPF3EJMU
|
||||
OGejsyDncwPCt5cmZhYwBsue1mLMwFy2FlFxoKcIE0aPeVvo4SdxgQzgLK9b5w8z
|
||||
ZYo2mblp/ofEEbzjxDGRfHs3OYNshI3NCvr3e3aETBlr/RUiC1O7k7LlKnQnpnci
|
||||
VQ8oLiz+lLvv1i5DacA9F3clgT99qq22f+pkP6TSEa7CQkdQYQB4MjkNtoHNB55z
|
||||
QfsWU73TDURNrwt7CcDeMi54q8zCwD7JfrrYBak1KKT/HcI0l1ZVo7ur3NZDlTF1
|
||||
4xwE8aNyF0s2cMLataLbPiEs4wZ75ycsuIh7DZxwzx9Yoa4jMVxYFJAHOGJPqJ/S
|
||||
cvNQu8E+EgMUc1yiaYTDzjCndyAl7gh/0j7Id6BxoS01Gx/IRzrxk3HwY5NUg9Eb
|
||||
DiXPQjfApn2uKMzmuKTkhww1/xPR2X1FwvvKWEA6vQB7Uk1pouVPG0ShqT5o4Ofo
|
||||
HNHf5UthJXDPDSWZgTp/3yveQ66UmMg6GAb/yTFmkimk/bVJ9pMedDVYJi2xfac/
|
||||
vsEJ35iP98+tgtmF2ivcZw2bbEwBQq+JAhwEEwECAAYFAlJv5/8ACgkQNuwWrNAY
|
||||
aCv2BBAAgOK6hej7O4f+Rm7yejDnFTfBNMEzvKJUEsuoAlK3CzuoTyIwjzXqrk3b
|
||||
nsbUas97ffEKzx/32FPQZVrmYUcMlhCZ5M/FXHmk9uSIVhzFPYejyd9zwLz7UIeW
|
||||
xC6wM8iCCi8f4Zj8fNklaoJF4DVGj7f5khm8N4dG75efhINHGDd4Gtq0BbKYyt6K
|
||||
xzjINu6mAdnmb6t5+mFPq3LOIvPx/fN1IrVJP/Yp11HOwnAHrw8ltepmNGRrYKqV
|
||||
KN9AT29w/27eKwrCvkoovHfvbNIjpxwD8ZsgXdYVzL7RjSVaYPzPemEaCARa56p9
|
||||
0yipaLovAfvxEZVa1L1xeNF0O+OzvU/zsy1vW4XGFtQt+Cz+bOzKaok33kA203+E
|
||||
Z3ou4ule/or37eO90Yu6GPZFOBobAraRiD2Qqfu6AzbUAuoGJlpsTzKOB9eWzvkn
|
||||
ZLnQas68bR5DufesoehsZU0tIUCIx/pnIMBlOWkSmzOAom5hcJCakvvxYOwtQnmL
|
||||
1yBgb+xra13hykhsmc5gn1rJp5C1lYdF76OS3xGfF2AiSU1VUBrqzQtjamGgEw7r
|
||||
oWtGTOeu6YCdz8Naj+V4/qCom5bO0XsGNpMtS1NDaL9NQJglOeOPNEJ6SiLypaZa
|
||||
dMCIShhyEL+NAI6btHTFvA5a6mk3fZ1iBOwvzBh/A/bu21YE3cy0IU1pY2hhZWwg
|
||||
Um90aCA8Zmx1a3NodW5AZ21haWwuY29tPohGBBARAgAGBQJSZ8lbAAoJEO06OeOT
|
||||
Z0xA27oAoIm8++RYoHIxhWYIU7ZrUWziovXVAJ9EFaJpUsuE0Dg+1TnrnX1nDmlT
|
||||
KokBHAQQAQIABgUCUmj3LAAKCRCcpKuzgatzyGHzCACMIvFw4KCY7OuhY39AaF75
|
||||
6+CbcbWagXqeTGyg1otch8bQ3teusSQpqN/RsLflp8bZnaaKJ3ufL/MrkCqOPqdX
|
||||
gOgo9LsAfQbXbVNNQJjc0NDcTdcATQH54Fv5rWj6v8NnbP3TMSDWcuYAX77Ou5No
|
||||
MlVevK4UzwNeESynGWxs0Aviya+/iqr67GRtWO1da7aQNhV/TvXIR2ZU5G4SEkb1
|
||||
zwbXOXXE77gHTNI9JUDgTsp3q25bwAXwSWiitxGkzYZwaKlWLTozBbS3U/VzHCTL
|
||||
058pGdw0YkNJaLL9ysehCJIvZOnCVPfPIBQvuGdZh5+1Rtf9Ztab7RARK/0cRgOo
|
||||
iQEcBBABAgAGBQJV1o1/AAoJEFIRjjwLKdpr7pMH/R8KyclRez/TT2UIyb6ne4ac
|
||||
NT3qsLIZkpq2q0Jnkj3QOuoEldlOk1r1thfZhYm8goqvrWmlySxJKpHXKf+nlLGr
|
||||
QZjatZjf70J8PXu1CAiDBZKAhLL+yzoW11QyZr/UjouhLxFrxCi6yCWuY3oaKi03
|
||||
HFsvml6vOAY5aYwhbVTYRbucOQ+rGUEgVTIrm2+JpgbeonCH7X1x7fVXYGPgoisR
|
||||
QWjVncdyHiUdx7gHAT0/APYtRdFpQlLRgQqnr6lnxhLindYe+7b/jmYykJI0gjfe
|
||||
D58qEpoSUOt9QynLcoVkzz5p+dMfHLZHkEWfSIAlqeuXQjRIU1VKptmBn7CP5laJ
|
||||
ARwEEQEIAAYFAlJua2IACgkQp6FrSiUnQ2p5UQgAsDzYgPcMWqq0jcSwRpUKLspJ
|
||||
PdNte/d8u97JCgxlNqzQi8fICutgYe+ZZj0tto+34OHB9kl/fwI+l/GBZrPCWTxZ
|
||||
gnG6Vqcxb2CBU3cDtqUEe5W7ddFkZfwn34/2RwSswGXgGo6fk247Y3JUDoyUgfyF
|
||||
w2bYrGUSPG7pXy7pMe2r/k+HbKF972m0sj/gEekmOC4PKhh0ywJf4bxyjB/CSsOw
|
||||
zV4Hn3i9ehU1sQtarlQ1J5udvUbP7Wu6TvWoA8hwJcWLeBPlwM0ZpAn7wZAf+cik
|
||||
16s+wve//6a3GUMwuH2PAYBoGDs+0GQMcmODnSBmQ/z9Gi3NTzR7MM2gF1LCPYkB
|
||||
HAQRAQgABgUCVdtZfAAKCRD0B9sAYdXPQH6mB/9rBQWUp86ApvlTbg0glLsHVbQj
|
||||
1IqZ/0F409FGcqToDfhW3y/hBktusqOFiQau4/7nz4mWisp7SJTcwwM++i4llfoO
|
||||
Hfo4IJBRThAajY0GVXT9tukXVetlHzYmtNgqPVEs0RsHz4h+oFXRoKx2GJA/ZF5T
|
||||
K9ABJj1pW+MpXWTe2RLt/Qr4+x+GCbE7rYMrzlPeqaGPbBjr/LfxigNgJcCzxcGq
|
||||
7CrQ76hR4fKo+N6xZC/je/kdefHpi1bLC7WkzLTTtaPho4jccxbsLwCAClYQqEMt
|
||||
BtnqnYuVw5EqMOExxrp7OSQeMlDGAiiR63nCZhmolZkopI1XrBxYjkHwFcCRiQE4
|
||||
BBMBAgAiBQJSYUJeAhsDBgsJCAcDAgYVCAIJCgsEFgIDAQIeAQIXgAAKCRAzU8nO
|
||||
8Qi1hI9nB/9tTCMhr6aHUj1+ntsurEtHL2d60zU5vqlat1WNsiZR1/ClXL0+krvb
|
||||
NMpfSeRXXiJEAqqaOPlPwDQyuEe63Jx5f4BMNtfd9pVREjzDCocZS5bgG9OeJ66n
|
||||
cKXY7cX/lWXE7eHOAc3BfyvaaNS4GaDrehyT8SAvramGEK7JqzmVLQiY4DlzuiJG
|
||||
nawZsaBTRcUOKlgdrqGfvxxLXHjiG+eqjXzo9+jLRClcKUnGDwMWnj3fZTuz+L5Q
|
||||
jsesiMztzMxJfgHp+/zWClPFsMEZ7IQJVuBk59l26xEHiceB80syOa/MXzDh9yS4
|
||||
f2VQDQUe3OXMNTD3u9XwI+Vs166/7HCbiQIcBBABAgAGBQJSZ8leAAoJENNvdpvB
|
||||
GATwXrMQAINrsWfvQEOMEDutIGmBwQ7s7/YAl71mqsNK3coYFl7mQEl4qP3t/f48
|
||||
uxS0q6wr+HPdkkdxQQgQTzE5ltnBpKdBTSFHfQHFCFTyfJpmgmWR1IWe562BhATr
|
||||
wCt5BDY56hmqlxbKXoBz5oUlyRVAFNHJW7WaiQfFUC4uOw9JB/ukgwnGOO4LpLG0
|
||||
PDuO6V7ObgR7uvc3P83Al6VMSWJMRiRbZxLd/zo5Ft7nq70op4fGkqdgHv1SHDzv
|
||||
19myqDbY8Bkh0hw1XJX8OV+5Uo9VuG9UWzzTlcmZVGHlYeI0uFVIyciQbwUH4Q6k
|
||||
/QLkzqZwkdp37FMPqmrZ93rHIcMG9uECQ/uMBofbxpLNbA3VfgOEONhMjBux0ri9
|
||||
Q4TfCAJa4MCgt2mGZvbUhirw1CzlZiDjDbx6a+HM7vHc11oIvuOkPyAXCjg8DN72
|
||||
e7tAIT9n300W18E8CrSvLeI61zoAap6mIY8nw+eCD/Ojk3ZQHFrAUbAUOhoze423
|
||||
wI88zwx+xU+IF/uaBUTpkV4nXP0LLQg9m/4xyXxNTUFfhiHs4Uhsvm7mCWxM/hdk
|
||||
Dv2oZs7XKCFz0plAnUl9feSyRg9weIE41kTTmYEY4pKk+VANz5ccENnZDLY2IYft
|
||||
jVXG5ts6REUYZSJzbtbqex7i7mz8zFOCoYiEhG7VAzVvcdzB3MAsiQIcBBABAgAG
|
||||
BQJSZ/pDAAoJEFH5zJH4P6BEqS4P/iG9sqQ435OX5Fr+OhLp9nH2QTTqXbV3PM/C
|
||||
d6NfKf+DSAWcsPZFuVvl2StymTA2vsIdiYdxpCOZe8z9BuLTpcyjj8h1sttZ4Wqt
|
||||
mLi0rTuCvODA6y2VBzTstUxoyDTqbIPRyNWBjDQjKRjZW/IIuAHP78jmII1sFMkD
|
||||
OzV8vFlteGLC9S6yDjwGDLc3pfczKanX6hw47hS4xoXa0MGeFcWxazoSZrBtn6hb
|
||||
VBQsthOT+PPaGxVPiJjfB3coAWGal3/KJuLdqg9cThxmcEoIYK95L74+7MRlkkxD
|
||||
hGdT3LpkvzHWrNePl042o5KLE/JVtErXpHgh//xODumn92CVL8ChH7ztSVY5H479
|
||||
wUud6lF3gDtg6fGwgUv1u+HhY3fN/Ggjn3uSZ3+YduBaGwnaId47vaWrcLgJY/f4
|
||||
d9EODcyP6uQxAG7Mr2AtAjAFwoMgf7MKc/0asYBSJZjpGPesBjkC42Mjf/b5rIqh
|
||||
xAVSnDjXdZ7kTSSHDtZ19lkLG6dp2v/HGGYNq71P814/GotjD4xlOk6tqOuGAYob
|
||||
mOg0aEWj4GmLkX0uM4WNO94uiWuesGfPmDanoJVFEqD+SypH/kNigySo9E7Ktdkt
|
||||
bhQcKOO8NF+BXrzFqpmwk5WQO10eZW1opsausUPleJiQ/mqcAksiglZLRpfk2q6f
|
||||
3n+3euHNiQIcBBABAgAGBQJSaGcZAAoJEC7Z13T+cC21uLcP/0iWwQ3hnROzot7L
|
||||
roxU0q4kbPYJucbinobxIf8fsoxNb9W+/s62z05ONhiKRwTatBL/FjCNTfvCiPCv
|
||||
4lmOF7g1gYAZgEnPI62OLSYEfWBfnMNacDYVAD3ARFqYT7fMCZBDmDT9ngZOuBAv
|
||||
9XRiHavDbZzAeRBYkuzrOQqwoy6tc3fN6qjt87/G2RaOme+ga4HMNVOKeRZfe62b
|
||||
ffMGHSFbCUdo79Sj3KYkejdRuqmfwkZjsXY/lKOTscMtZWDxPaqe5Z5jKykKK1AH
|
||||
1zDANVXGyOOd0lYja8zt0mC/Xrj8j7TszCGx92R/EwOY7TSNBVWbEZrVkmH2qDNf
|
||||
+jtts0q7E8k9kaqt3jhKU4k76P0mk7tzUYoV9DUoNBL2XMd8GK5/5mpEFzu4vVJX
|
||||
ULUbn9lFt5iKXZ/wEQ/cQCFXl1Qm4lLKq8d4D9zRMidBD395nfRoBWMcFp9sIq53
|
||||
onCWIX58KM7owUZ0JlEQfxMumZA3VMxp0kupC8jLpaPGW3sBquE8S+iEY8CD6enI
|
||||
4ISFrn5BF9osSeLOf6aZWHeCBbEhLW1eJbDj16kCwnN6ditvzlyRzTvDk3pUHKtQ
|
||||
i9YF/wfoE/L0Lhz7pZRf+NIDPKtlWOncCUx0LeUX/EMgoKcWoaKuFvlcPrDdBSJy
|
||||
plczFEkqDyRLMHCUXNM3v1UlaV9PiQIcBBABAgAGBQJSbo0iAAoJEH8JsnLIjy/W
|
||||
xRIQAJva6VN+4Vt0UHqWawZe2GSHOhMvQy7wDEO86ANEwsI1WhzmghEFTxlvlV/B
|
||||
aHb5O8dOgeZhOYXRLDmuWCcE0RzdTlCm59ZffdZdp7XWbWW1ASeEVqGqf7Ez1hKH
|
||||
2yw20jq4LFsHW2HMUYC30YiD7A4TIyf7ISF5GWWwMvxaPE3iTghS64opKDabVQKt
|
||||
j0ePb9v+GRvsuGjooQDLIGzx31QZjHmdobsiBcj1nGlu1wt1CyzbIrZMLE1WlIsk
|
||||
FEHFvQy+AQi7MfegK9RP/nkMLcJ5P6/XLMjseeGjJwVKgZxVN5HpJ0GGZALKwTYV
|
||||
Q+3VQwOY7K0rHhBzE/iuHzjQPvqcAJqn0rAiy4+2coH9XXQqZMNlhLLTP1uNjjgX
|
||||
3Z1R7iIcI+tdLULNQuttHKS/2dS97IOLiD8he7HbT+szElVMnK4U7AtCogNJSlM3
|
||||
CXueH2GJUDFlOPmI97MfDvmVNoKpX5GW7HculiaovKBN1XwQI/RPHiu5L4EgvD0P
|
||||
fPakwNYeWmFr43cqRzgZhr/o4Jo8IhyS5bZDuVkKDosSBIznQKccr3BEDt/OJdhe
|
||||
0dhg16fwc6IVwgpopt7Qd/H6lgWKa5t0108b0ZqqYacleq45hmBlJAM1R7vcommJ
|
||||
X9GSXM/A4a642D2cwwuxy0Z7j8+dCfIxIGReAMKOR9n31EPSiQIcBBABAgAGBQJS
|
||||
eB4+AAoJELcFd6FqVtZwv0wQANGMZocK1RK5YL2u8dNLv3NZYb1YGZ4mHVvL5YfK
|
||||
lbB7Or3VfwOxNDVPJyAdyFu+FQM872w42t5V8n/pEZN65829xF6Fk9r5UVqQdldD
|
||||
WAryttTZZqv4V6Zcd1dR2WGALDfVTLQCxHfwdE3dXGlsTyuUqeY4lk9/2uw5s3rl
|
||||
j0vfUO0iojqi9zoeKIbhxljLzBe8jK4m70mqvrBkkteCacERxyDyiqR7n3E+wD/F
|
||||
Y14tlv5XcGpJPxLU3F2mTSEu93g+rsqK7+krcgoLduOYeUJHGde3GIwYvtMnzCUH
|
||||
1+fPEFN+bRxzHM8ZZJLpYn3TkaCIxK2enrW9PJ3xeW6z6QeoALMSXesG/nzcCm2d
|
||||
TZ8hkzrWwl3Zht7HyR+b9w8uZk/408LjpslPvTTHTq7ada8FALD0pZSg2N6+dyVL
|
||||
wd4S++pQz2Q/PtQZynCyvTYTuZ8LG4JjD9thMBvyU676ZhlQDqNv7rBDEaDFlrcM
|
||||
0w0Y4897IelFFix+sciVM6lX/Kqi4mWLvjPX4Rpa3ouyN5Ai9KvSbvQvat5fOHD6
|
||||
AHgtVN8FA7RFISUz1kAaNesrUJ3TgGAqPOWwj3MVDvsle7Z3gyCESUVCk0caVEvM
|
||||
rdnDeGfvMPdodv9dXpZwZRZRsGGhxUNFsytKG9hAnM2oUnm+EkX5j1s2Cb5GCt5V
|
||||
iXUFiQIcBBABAgAGBQJSj/n5AAoJENH/AkpKqSDX7BEP/273H1gHzqdSwrSvrWRM
|
||||
QxkiEMXDg/e6tnns7imJJMmKVf3UMmwWlH2rkFguCUZqx3UAGfIh1oalM01p19c2
|
||||
4PJa5lXAg9oG3yow1O2vR6+Iz9M7v4R6bARlFpBP4i7wCqe0YNjSpB5mFJYwGD/g
|
||||
hPNonYHaZjVO4dV/IfjtJGyXkjWd3sTaNsjI3b0plFChxbqgbPYigCWKsOVTnmZS
|
||||
lJTMKfZoC+w7sAG9n9b2WKIbc4yxTszdAh5jcgMtcjePol3IkCJFS7ZC5A+wTHKe
|
||||
HaIqRGe5UEZtyaqOIwwNXy1WDmDMvT/xPV/swW/xCpTV3YSJYIc3s3N6k619KD4R
|
||||
H2DUg1m1dVmK3IWsUjz0Z8wbUY9O++sdubtuW9eNkACHyeuqShRflM55qCkgn7rU
|
||||
Lq9p9V0gkocF4AfKRCB0wYhajw+sUEY21mpDfgrPrAVsPM8It9VCpVLegJTS6muz
|
||||
tX+U3iKP4y8qTPuJ6s83seBDnrqRDYKkIlfKXFVgzsJSKHMUJFBbKpJrTmFELtKr
|
||||
LQM9oOGaQLEnA2JWl01tPxcfrK48dQXwZJjZvfgWClNIHo9F3eis0pwafQlBueRf
|
||||
mV/jYgSJHXenFpN2r5FedzFaMbFT7UJDffE6Grgk4PAdu2HUwW0TgSl1kJT6t/DI
|
||||
cSjyd+yQpVEoVkAiiQz3Bmd8iQIcBBABAgAGBQJV12DrAAoJEE3eEPcA/4NaKXUQ
|
||||
ALN4SwCuZuBAiGZWDan10Z4YF03X8z/tAtwDtW3hE4w59n+SZJtKC1YoYkjFYmKG
|
||||
q7N3E3uM/o00NWgGCo6rLCS7M/fwFQ8eLvQYztEuxt6OkRbIheakF78ns9fGEBTh
|
||||
xjkq4bBz6ws9kYRLFL/V0EOgV2NxzOxEK7mWY9E2TkgtlA8VVYRywCSmhjuMCnr8
|
||||
+sbZJnkZRVg5s1b2KK8uwf0BSkzalm83l6i0Aa5x1kjsE9gLf/SkZjw8ggCxEDSj
|
||||
N0wlRyyWv2A5m6sH2nLSkYFMnUHGj/5zoPfC25YHvBkcxQ/oUFpWigWumcOgjkrv
|
||||
XFBayMY/0THQwqLYs4sNxEFIqueGv3VlNo/2k6IrHTeaWb8vHIs5ChoA/6dnacM0
|
||||
pGGsJWqFtDfSwX9ZSjS949QM5El4yK1i9txJbzw/U2HiJ/UrtGx88mBSVVynC2un
|
||||
IeYsWojlG2ENrMAKeQleQlYjKcimNxdbYtOYAlHn/+zUXS5dlDvO0sUrKPhVAPkF
|
||||
3/chQTHPLQGtA+vhBXWKBHoog2sAUY28kNsUj1aqnDP7RMpmFoJJEWlxj90Hs1QN
|
||||
8Xymn191My/IGZ2QsXjZknij4MbsyEks7d3l8veJ7rijPyJ2WvAXE1j89grFhW64
|
||||
yDsiAur78zvPNJ5T2fIVyhBBNN4lc4GtwgCOnhJsKYBpiQIcBBABCAAGBQJV1ob4
|
||||
AAoJEDwlJe0UNgzeqTkP/2CE/qK/bokkvt+y3LYQ7/k6zD5OK0yvYIA4/qAU9jZV
|
||||
Be2wRTuUY2KxZfJoWaV+wuBav/uklkDsWjdyTiyG6aUj5W8SqV0K6D7Tab8XKOcU
|
||||
5D0YoUn2j7lfjwgetBTszUqWBTgln7cv3mS4b0hIRjm0dT0ab7P9dTVIdxaAqBLG
|
||||
Rvej7taxarPStoGusvWC1JLaMhGJVRfVwDCeX0gOi3K8sB8ULLLvJ5GLjDcQC8Rc
|
||||
NTzWrnULiti5l39qTZupj4+SNrlmFQWwvNPtvBstpBFHo+qYnFOEL+c1pmsN56Gl
|
||||
H9dylu4xaf8KG1zPMySy+alHDrqFl7qlPOX38lQaO8hehkqQAgQ8A8tHo3NiljuB
|
||||
8nvY5SwhUKyLOr+S4ouLptgiAwHfLFqfFxJRlurKgWh1HxI/tgTyhQy/4Q8Q2nuo
|
||||
R8LQkaZ6unxb6HP8cj/+cKVuILt4g9qsp2wLET/YeFJoL22NBtdHI6ImnWuVM7jU
|
||||
pB9wjg/a8s5I6tKUsb4T3rHnUIZlp8xJ2f8bDZwbxP58SkckjZb1JKNXHlusf8U+
|
||||
SVNNVup4ngnnoWZSLmDJIL9C/JPyWdsq5PFXuZrfjBxMQLEM87/MOTUPNjeZUyRi
|
||||
cZdJ3bFXshRB1Jk4vAWu0TEKadCNr2Q9ZrbHEe7qzCbMFj6qkTvt0ltFkU1u9BhA
|
||||
iQIcBBIBAgAGBQJSb9AYAAoJEAgfwp8kF4bdI98P/2i1wJNRkb99anzkE5d+Th1Z
|
||||
k2SFNLnA2a4YRdpLvKH5v2uZICwu0GUbWaI3N+6xSaZUgJIGVa3VjvTwPACq43r9
|
||||
uR7HoNO888mwxckYatD1dyTh4ny9j9Xl4cocNdYiVc9ihVWajLjqzBpKcbQAjor4
|
||||
8ccYdLEjaKndXVjlgkbi75u0AtaxeU7SU1dYEO0/dWk1SEDxyZed3GiZi3f4k5Kx
|
||||
Rd31X3SxHAKUlCJHRCbyqAMi0qWr9YR81RZmp56gcdMoW3ORyVQpVStWTu3iQUoG
|
||||
hs1LhvQbKeFIJEnazObWj0okmtLUYu0vfaDZ+FZhgngOzvm/icPulehFcpDquYAK
|
||||
f3BaTbve4+VyRRF7keUJP8FGZckRBQzoP7k8TFdP2Ita/aMfDs4HZMBjorRs2lD7
|
||||
a8YoEsf8uHY003ET5AFiGBF1muGmWBD3p9lAszt5QUebfUBbZHjDmnArRhoyLrZU
|
||||
uSKLoULVg4usOSJco73V/eyyeGbhTpqeps5wXowAX42EbS5ORWtCsA1wn8RY3DYU
|
||||
3YV3PT3r1RHN+8yh7IVGxhjPV8MyfjVtKuhsVF81MORwiHVchkHx3Ike+S2fLWGU
|
||||
JihJ45m0l7YU16TurZIWsohCFBfEK8stP7XsPtnXSIC+MC4IFsxcc608UW2mYOlL
|
||||
X3IJ+UekrED1HWJE0x6oiQIcBBIBAgAGBQJSckkGAAoJEB6aO1+FQIO2tAAQAJU9
|
||||
+9nPc6SZdNWKbJa0HJAgd3nQ9oV9XOt0059rO4aDAGk2nIH3ZMp7XjfkKYOHEHSj
|
||||
/Ee2H6kGQ3BxdEgj4FLAM6EF63OnFZgQ7Bxn3495bPg9F/il2itL6yjyGli4UDNc
|
||||
Ij3FjqOtks03r1mW2Sm4sMb6G69x26Va6wNJeBt7xRuJQa/U7oqeTT1BC8mU5ujc
|
||||
TUUNyNVmjxiMcTZAvDq5Aen87a+mfg2QVGiH3BlzTFcYJ+GdKlX7CC7KDI2fAU3h
|
||||
dtS6p+2E89g+SGBISb5oz/IWI8cQBV/OQzSXK7QBKR2cL1tPxk1OO/Y+ps0h+4vL
|
||||
H7KE3LxPnNAGJmcwFYix594/WrkwK0m18h6yK2tzAZOZGNaeRQyU900NVgYeC4qr
|
||||
USCk92wdQa/nSaL/V5TEf6wkJv6X8LP0SHDGUSwm0NRr8cbn0nly3rpa4YfYOlLB
|
||||
+mM5BDZ+XimlmT0iE7xS7cFqDIKes3dvUhWhsFl97c9ISOhkiHc3XQS4gUM3iZtK
|
||||
X2e5I854K0QnDjimmFcacty4ZsNlWfQ3YcUxTxnYEZ2fnmNWywyr6DeRyvPho6F4
|
||||
dA+y/bl55q2ikTsZGiXdtSsdnniAJVM5z+zSJpdD9EVviUYEN1Zub+8zLmpgUrH5
|
||||
BLC9VU+IiPnMwNs9FMZI/zGQpuJ8pTF5CTnqgocCiQIcBBMBAgAGBQJSb+f8AAoJ
|
||||
EDbsFqzQGGgryvsP/1Cu29YLdqmgwWU0JByv5l/YUpYQPHKAhZPjTtvBwYdCfGHv
|
||||
5AEUnMgcnXBZiKDB0SiTSJcDOkCPU3VqUe1d+lAtVHo3pJf9j+cHgZJ+w+Xja7YF
|
||||
xaXcs7R6z0ToxhvyqoatHUUwFpYTXW3bp76vF2nfFzInJ2sWrTIR3OMp4YWYlAYq
|
||||
g0lyNLWkIHdBEPe9BaBSS/v84aTcx30KqJ18Ern+HSIyJAhc3rj7OGQ2CPBouCPF
|
||||
Qmv1BFu5aE1EyKbWZ9lIXs7Ryc16CswPEuLiK+zqICOKE6G3LxqYbtLMNTDtIQbE
|
||||
jmF96FzpoeJ4g2WTeyN0CKauYfcN4eUlKDy64vSO8Ci8UzeYYet5Wi175uMiQ9P+
|
||||
0fZyvwSDUPlB5yS6HC2JNNraNeFRaXVLzkapikPdxUJtpL8uipCehOFpb6NEysgo
|
||||
VNtz8yFEELuRQzT9ooGr4DMwUf8cEZEw6fshNQoPkozGDd3wTiENqMKQr24noN8r
|
||||
PTjQ7K8ajkipmdtzvwdwMxl0qs37i5XNGkeMNe+4RU1Ikt5mJSaPk/os8k8ngpkW
|
||||
iZv1tphnsbG2mlGBhXwfXXwoQTlUfyzu2BaHWaCi8tp5MXGBzXxb2bX5qefjpz2W
|
||||
zVE9ikFOqKM1LCK+Pw2AHCX1LriffDVddz2v95FDTtpkzYcFi/6IDS1H5+WKtChN
|
||||
aWNoYWVsIFJvdGggPG1kcm90aEBsaW51eC52bmV0LmlibS5jb20+iEYEEBECAAYF
|
||||
AlJnyVsACgkQ7To545NnTEAAEACgsExL86eMQ6OFYYxydYD+9mj3qv4An0r7mSVz
|
||||
lTKf7+nkZ8uwt8GnRwcxiQEcBBABAgAGBQJSaPcsAAoJEJykq7OBq3PIJ30IAKdV
|
||||
W02IjEz0xYIxxvhQK9558ZbOvUX0j8MwDHB8+swPvG2I1wC6penWQVp+MSfx7Dkb
|
||||
GUYgfnqwPidjSqcDd78HJ8CGCYk3M/zb57DdwEMics78SlV5SdHvKTFweLN00dUK
|
||||
THQpgprtQy4wXTKKAQuQxR2MXPcpQ5J4VGx4p5N7i6r9mNec+BMs8nk+RjFG8Qzo
|
||||
BnlDY1V95raA92blBfE89acEKKeUBkvC8WvDZFNbFLbvy/uGK7wFUTURIe31wQBZ
|
||||
Jb9wusL3M6vGH7zW5MYzKZ7dtVAiNCAQ4c6J8AyAoB7ySAGQN0LMmlpyvKlVS5Dn
|
||||
S5wyo6pQYPD5TgqVVvKJARwEEAECAAYFAlXWjX8ACgkQUhGOPAsp2mvTmggApIif
|
||||
PJmbXkCkUD4Fqz0vI1R+Lum1m+TgoJ2CH5baSJy7mHtc3OMIdP2IiwtHb/NMqNb7
|
||||
kz7/ptAlI/UGLjUL8zzLsmjUE4KkzHodwEFIXwsxxWSR64Tu86jc8YEoOFEL9AX1
|
||||
XS3h6mWlk7eScZ2QO7foZVTvLUV1Fxe92tNqAZKzGFDq7avmxBPjaFzcNtY4Qqfj
|
||||
KWdN6MW4L8sXhnO1XB/vsbAFYdkrdRbY+EvkhTaEIs3eP0zELdzJPRq6faTgbYUx
|
||||
Ba2M4f51kqUGluFRGAIkfzq6WVkEmyLQ7AqB+Sr/RmEZGZL4CaYdlAG27IVKiYn/
|
||||
vtWQuqFSIkZcRO08WIkBHAQRAQgABgUCUm5rZQAKCRCnoWtKJSdDajEVCACCzX42
|
||||
9NoQgtx8pxQCYTxSYY0ORcyu6OJ/pzkVKw4jqrSypGc82j7F6+71B9wQT6OoJh+S
|
||||
Av0hkW2J6o5LfhmSzQqD4AceVFQ4v8vZCBaiLfdc4QUjHVE6U8dzE9vrDAfU48vs
|
||||
4OUnfzV1/WCSpZxVu2xA/Dxipo7XSW6ivIMM43nGDeCDp6U79xrcQ3FtRci6eVie
|
||||
SbuOsrIVYkyG/Pgoa3cL8uel4/mluUfDBM2VDccTXMgFOd3I5rDL4eYAcziL3g0p
|
||||
3TThAY5LQedZjeG1I4M62wxL8cu/OC+rBjR1uYXfTUMB74NBUGbSoEH+uogXbkxl
|
||||
w672FM1ighcbbok5iQEcBBMBCAAGBQJV21lBAAoJEPQH2wBh1c9AY0EH/1HLvhw+
|
||||
eixzHt8iaJilrhnum0Wb/XPrCVVH6GXEqLyHp8wEkI7M9C6linPEDywgSgE+aISU
|
||||
IRocyA7r8mGc6ELJuboQHpmEhQXKPrtUXQYNdp9S5XUSTgtnvwpMyR2lKfRJGw2y
|
||||
jlFk6ociCD0qA1Dj+6q+sm2UUoWCoBJQg9/Ldz84QRMtCVQLE2JiNU+v0z44BAx6
|
||||
TH1RzKzBUufKmh+7F7GSRSrWnIKM74L8+FKv9n44GMNYKXTXbVb7vL+mTJUbgDx6
|
||||
GyzGRcD88s6rGAtK4bRkH13akQKeoeas4L4HxlUkqcisva+sgWg2yqV/Rjcfz3nl
|
||||
VkXb0XT+fUOd2eSJATgEEwECACIFAlJhQjYCGwMGCwkIBwMCBhUIAgkKCwQWAgMB
|
||||
Ah4BAheAAAoJEDNTyc7xCLWEltAH/37ADf0YFPrJd3gcZyGC/zvtPhYPZ/kxnqoa
|
||||
hoBIRF/sftGV5XqwwZOGm1Iws/VmTQ0PFBvU+Mw0vNT0HcreRT8PohtRlF+V8umH
|
||||
LVeL6x3CtmJfsfyYBxLoE5/DLyYqBvpCothLm40ND4O6lRdLF5CUScGhgD1Iblvm
|
||||
YBs0Uz71tFnHmC+Ov3fNC8YkTNymaxnJGYlPtmwUZ7SWh1XRl8pMQzL+3B9Be6ec
|
||||
O3J5lbFmwL8XYawx0HtayvM5n9VbPy2eawAn++e7bLLywc39YyQ9/ckmSlZqtlUs
|
||||
Euij+h0Tqmr9XY7K8WEHqBJXfl8txIm8DTOqq4dcx3j7k+qwQJCJAhwEEAECAAYF
|
||||
AlJnyV4ACgkQ0292m8EYBPDeyw/7BGxHrXoKe/oPx1PwkqvdYJ1CXXLbr9gFYnxu
|
||||
JXUV6SjAqOWIkspExisMvLR5HBKKCgtkLfaaN24ezSheDQTOH7zxc+8b6kQmWRw0
|
||||
Hz9rqASlqJcP0AMrutWhodX+dougNxq1nPXlQI4sZPJhHUeHBhdqCYL4Kbzh3vbE
|
||||
MHE6rbtcF1oYNH6YwmU4IosW3BktwjfsKmWy9pT7ugN/DjsFLheXIGqlhbAsA+Jp
|
||||
fU+M4q30tIJP1Ovhvwf012YJNCPuCLhETt+u7wkpLvlvb1kw88UxKoVgG6MSOVvT
|
||||
Yp3CcTYr37/8/XNvzPP1uOQ2MSbmjrnG0cgM1P06resNVvdgrUCFAXks2pNDMqsQ
|
||||
/t2Etslu3u2tLKAvhPambBhgS5x7C76GdTCvRznn6VnDz97O5IA9Zmc7RetBfnxf
|
||||
LMAhXbQg/2B1VIVHALO/a/A7WWy+CXSypilCVqB+6Rx0OdugWbszIWj9cpipFrUr
|
||||
PpezgI5wusoqiNVMAITlbHh3Xc0iXsFmDgDi8hB0RTUXQePPvpATPD6tJ0MfFIkF
|
||||
rXOO0xtVU7UvdgtCKM/INFke1ISj2IFWF6BOuZG76tix+CvvQyXrRFN7tFOWgNPX
|
||||
79XREy5lJNt5IL6l7DiR9hIbZU0JcwSHinuAYKUBHr3eZCmtgefk7EhXDf5gwn+N
|
||||
m91t9lmJAhwEEAECAAYFAlJn+kMACgkQUfnMkfg/oERxnw/+IH1MpdnfbrLfJLBA
|
||||
SlJUNa4d7tDSo5D7b/pxKovKnH2ySvt93hHKfOJaFGSa0phNfPiwqvq8/KozW32E
|
||||
dFzlMo9Yxkbjnchtkyj2tRrNsU/++KN24oI268lJN/YzZhtEk1OBQSIQZCIqVanv
|
||||
ljLpzGwp7hHOadImYwQfyAetbwBptoWMr4kvLXiPRuBUK5SpeS/EgznlMbo4H8xQ
|
||||
yf/OFOv5aI9Bdfa40rocxvO8jiqOzEV40Sb2kn97SpcYxSm/8zWjJsv7t6k9d2Qb
|
||||
Fa3nJUT+TF2+Pt30tv5nNw6d79BBdb/sevsZdWnl+y+zF0cBEUo3YOLW+Pctx9JS
|
||||
cv1Ty8ruE+eXf56EvS+qYdq+/cou5Acm5Eq3iT8g9wjZAYgZfJBIySQQ55BBspkS
|
||||
tz3ChK0+JZl11qFzIJlH9R3ZFU1KV2wXrzlFdVpFkj0KrtS+04GZrbzdS2UNeMYI
|
||||
wHw3VIX/rllpDynVujlSptgLJQzl+YjV89UKSar4N0B1L8CamKeMG9ZxsZS2ydEg
|
||||
UAgwKnWtT/Uah8PciSEAssK7mFobiTAn02pfOtVgWasC2g8Tg/ZWOaPgVoHIblop
|
||||
Uipv/F+6+XdDVnwVGH2tdeBZ4Mrtw7MQaVf8nn5Dtrbwf1akFVenMfoMRIHcSGHc
|
||||
Fp6yrbMgFIvg2AlFJWsASYLc6BWJAhwEEAECAAYFAlJoZxkACgkQLtnXdP5wLbVW
|
||||
AhAAowPKdqAIT12GENcrQqVlSpRN6BcJ09JO2+5vgkB3xzQh20u3h8F2PRUEqRGR
|
||||
qmlNEB+2glhdjIyOkYu0jaIDhmDM7sduO4XqZcwPPcfy2O1IW6d7Pa9JqUqdjnZE
|
||||
0pmDJ3iLq9+Rtve7xMn8N7Fuk/obElaYYU4sqV1yidCVOIptnnKDtILhQ+zcvoi8
|
||||
HhV0RtYpGT03N4/8ZvgT4bL7MI/wFJA1SuWxO/MnaDqqVBWZ8HhmFv9MN+/yxJUW
|
||||
GYBnpq9QxehEIxMPwl5ikcrfBYaXRVCDBm6eONvNLKzSPGVze51LpRmdzTpKmXpm
|
||||
Yp5sL/CLTR5J8HXJpMaoccbjXvR8tHS+of/V88D0FO6RSYO6LMhnJ4eTHcJNPh85
|
||||
uAoJLkyPzYP/a7l1qRB+gGBSyxYv3jeF5rtfSQTnKGANlnKK7gw3mEjDBq3aXOJh
|
||||
GlFd6XaFuhf3C8PZzgJAm0/dYyCxKn33gTs4PBXc6RVJsdcXtj6G3T5NfyCpJnb9
|
||||
z2D1OHYqAosM8IVAr0LQbpy4Lkx6AfnVXZiIJogW0rHLYDbLTCzgObKpufZmNnJJ
|
||||
JSPpqjus6xzt5WRYVaEC3WG7foqSfoWV3YD4eOeB1W4csDrRkj398+5cqiV++Nxq
|
||||
2XBB2g7y0ERvuI08gPau4eTYsj891r3YagQoN0c52pqDIRaJAhwEEAECAAYFAlJu
|
||||
jSIACgkQfwmycsiPL9bOZQ//ThrYMBwk0WV4wA148QhCkp9wpMoFcAyyIeA9qxe4
|
||||
5CKak00U3yY+Tlggv4W+yy3lJRG0RofkkTQxVONXPzhqf0qTP0RuCADHj+otpRvc
|
||||
6F/Kv4X2WmNcqzjdM9SKQZhxK0soPJJGKKtL+PYdOjrBJTf/mT3K+Z3k+Qv+vc8C
|
||||
vaT2eqVj06G5BApf7vCUYy12eM1N+0D4dQ9rjPzsKHw0zNIqbcoolXc/DgGoGvjy
|
||||
7LPuqjrRhSsYyvaPLFixVTpPKuqpjNEL/U9Ux0PklDVXRgv0gB1RjaZjbfcB/BBa
|
||||
kFtlUlQkrwCmJQNCeQ3HDodpHdZ8+gCyK3gt7ru6DWhn9IDAsmy/MIGNrlL2rPx6
|
||||
/vKVSOOZNLbCkY0YOh69gGhEwI0KGQN3YKj3fOCIfRMsAglyrOe6087E2ptb6MbD
|
||||
XnRSIV9c+Awrdom+hP/DQjXYlhy/sZIdWe6Rj2p5eetDFGBJA8mF/e02zRTAMbif
|
||||
X6J6aZY7VNPO9/vc/Ej5QErrCWwHb52JjlE9fq4E1kVC+xBg9WTDkXM9upr4NzBn
|
||||
KtFlv9LNfJALDrziWQCceymBnJfsde9Ms3hsTBozzesg5Sg7yxSV2mps2JyPDFR+
|
||||
W5/vJ3MYLRI9AO9hSer7JT8AdBPf2h57sFQSOxleOiQafKce4bt8Snqf4uEttYpD
|
||||
JdqJAhwEEAECAAYFAlJ4Hj4ACgkQtwV3oWpW1nDghxAAmWPzwCvFMWYVYKiN5fwk
|
||||
gxFtOoq3XNcIYbLFX9/83SBn8kDzbaElT2Cc3f0p1he7VO+v5HvcG1y/Lx8CXLLB
|
||||
rfS7ncuh0Ahmqz0orgJTZh/PVjrL/7MXnxdLdxkRSM0ewyG/bgx/OBZfA02tkYQt
|
||||
13VXOAqXNQLlyej1DIiX7OOW8efS+zG2pEf2h6waU5vhVE125Wv1xAUyEb2+VG6V
|
||||
UxZdGP4hhW+9nHnn38wDF9DS4FoCMHKCsbFIBRPiyGfG31En5txvHlr+CPY8Iaxk
|
||||
eM9t9DZOJsykiQMz+sbxwUfbiyTJYe4sRgCK8P4VGeK3vKzuZccY2HcELKiuE3KT
|
||||
XUxbDK4SLSP28IYvs8T1t9Z3t/tyKKSBKjZ/nN7L9Ialp2cT63hbJzwyE3W8/H5f
|
||||
57g5n+6PYu1S/TnIWR4uUcC3xAtA+g/es30o9vVWBHBd8FRsVOcM44xhpxmpvbvx
|
||||
RJtbDlLeov1Fnqst1lU9lGR2doWgthiuSZZ4VFMbY391YVzFvhLu/8zE8+mHupH/
|
||||
WEf74+knQmpzizZrFtETBBbVoNCdRzjFm3UYVRKoZW2eynfTLEFf4KF+EuBW3O87
|
||||
SCahcHKImHIDVA+ewlbTqlzvCHBGJawwqU1EinF4e+2jTJiCllmLt1aRgGvDM98J
|
||||
Q6nay8IL+QYpIEoqii/qEoyJAhwEEAECAAYFAlKP+fkACgkQ0f8CSkqpINcEQg/9
|
||||
H66Cl8JEnZZ++PBsRGsH80fP8opR1yu8Y8IAYccPDK2ViVGIxhp0phqHWdh+5l1Y
|
||||
4iljQi3/82PWuv6rkK+lri5jaCtBxhq5aYRsWEc2zwP1lrXx3HgpnY0u4Jt8F3va
|
||||
1qdzlksIjduz7V0kMl0RJdoAFRS6K3nVsPpQbX3kBu1SHk8Jwi9RYGYtq36C3Q7N
|
||||
17tQhkcPeLS510WNKB0TkwiVEUhz4OKPQR5SXms85xJ+27NtS7QgP3nIRl+1x0/B
|
||||
Yj5K3oJpI4WSCoMdti0u4zUmNJ++NsSlmOKuR6TeWX5V7ZquhP1gx8bVptB8gUun
|
||||
LdITunyckIcRVcF7tzRmw3Nx0R14KF3Zv90+78ZWFpC2tEqqdptYincHnwzBu5fM
|
||||
vziQIR11Gcu46ecEt3xz7rYnVDgQDxiY7Ae6uJK9Q7DzjDYEfxnnhaeKhYRZs/45
|
||||
/53rBolkOnswveWFAImZj6qU30G3sj/aY4r5bDc/t/IcNRosEjFC2eQmLzb7zhPc
|
||||
63Dc81AB+Qbu/AgcrP/byM36HZT+4/4mTun/1ms94R3/Dt8hycRmjJIp4+qfjMdz
|
||||
ufaUL3IdSl0A5FXxLxSqpHyvnMdPwJKUFEyFEIInbe9ASV4Cgn1ERXz8PG5Es1po
|
||||
nn84WfpOeMBYSZtDpUZPjNIqO6aT5CLdNQ9ZHc/sgT6JAhwEEAECAAYFAlXXYOsA
|
||||
CgkQTd4Q9wD/g1oYZg//eXdzEcMF/gBI4ptiR3cGr6FbxKWH2nP0y4Ub0RR5YCBL
|
||||
HTnvp7reJ+Zy7eSrH5Y6bKrPLSkOzROtPwxAzzvmb8SioCC0bPzYcwFN63D4uMng
|
||||
IOTTQdjJUoza9c0TiSyyC/VYI8g5upLh0l0dBcolabrYKyHE9iZ/AJl84fOirPOo
|
||||
jlbIFFA6pVBGOIp+OzcfI5cIxorSP4wOT9zj5W/QI7kfEae83fDA8eHcDv7WKYGH
|
||||
cXBmsOMreEYjQfAPDK4iaOwkXn8RSduARD7fT3xM/sYol/ciakqP5QgII1g4CkyQ
|
||||
vGnhlKCeNUGrs1aBrIi5hG8zixcrret9o2Oa6uDdxsSNKwBXhqX0kqgUcNzfYsWI
|
||||
XNUClayHEbeGdK5Yxw7FbIMAphPq2GQniXLPuuV0vaU5MCaECS1Heha8V9kNpEsK
|
||||
BjTPZjva7UQnxr3FRsdXuKVF+oax1ymmG1Mtz/qkJ6XIa8nWkfCB+ijJpQg4fz9X
|
||||
4LYNmpI/L6cyjDURt7dQCCg2LOz6nsZZLeXdjmJF8zVEXis/AEcF/w1+r+FP5mCC
|
||||
X+c9ZSwaATNkAjVZYMZFQSS2BB9DxF8DvkgnRVpGuvZFsICRxIwOzR+RHdprmIMv
|
||||
ouByLn9IjpQ3/NzByzee8LlWbztftY3x8G16VVIpM/c/yIOVaanybYfTokljzESJ
|
||||
AhwEEAEIAAYFAlXWhvgACgkQPCUl7RQ2DN6UOg/+M1axSYbHuUrXbE0UX6GaQX8L
|
||||
h671RuuD6Q4CgLi99RTM59X0xVKZEDrIeTeaY/HLx0DIuxCcFLJ4apP/TfnrbFtn
|
||||
6FaMyqwk77MRqrk7o8n5Dht+Q9ZZkRD2ieDSSHZH2dbsl8vo+IjZg7gcCVRLR3gP
|
||||
991QDqTMYBUqL2TGFI+wdcr4YqapPYKWHVFyhyNiUcZ3lcWduHuIrkBBVGhQGreU
|
||||
yB2qCfuFDkZUmkjVfQtVBgm0FXYgtOafwZpTcSo0hkQ8PVFnXgIaF6a6SOSYxoXH
|
||||
kZitowDtTslXlvzFLSkmVg+JpstBpP4+ccw/YlPMB8nQX/Ngp7q8S3aj4455Yb20
|
||||
BSrIj2Y9OS188u2SMnc102AJS+rANRaufNxV3UwzvUiVKF/neUODlyQvVp2uetKu
|
||||
fullisk+SFcaBT5EmxlAr/RybCPiDBxv8zYC/ajKGoU8g8Cej4qcMOVMfc5gtC/e
|
||||
zAimNR5gDzlxZklzvsj6B48GOGUBDFUYH8UXPkGcPE6PrDjXagLBKwlZNXkyDzh3
|
||||
EYH0ANJSgxGcWShf925toSDml7nWoPmLnQH1yYWykr+/ZtnrW3TLoh6HqfVMmfzx
|
||||
Gp2AGOnYF/jslpIT29cqhKfpwjBJAkCtsrIpApeCrCTVsykMftk4ZQXPTIYRlXCV
|
||||
C8oPPE2YLaoiL2umj7SJAhwEEgECAAYFAlJv0BgACgkQCB/CnyQXht0M9g/9EVzQ
|
||||
lSjVFcyFbmmD4NbvDdEfWZzeTiD8qs4WhQyOoKb3Blc9NDNf7p3ygz8h8m2hFkz0
|
||||
21T+AeD/u3gPYf+WUn5Cdb66y4VZkfX15ZJsqJ4JDFG4yOHCBpWkaiBhAp6Adify
|
||||
ewPpcxwt1VgwGY/XxJxjaCm047sz9LdXu93FiZvJwnjnNGlKOiUFltvo4j4rZQXv
|
||||
4WqPy2yuXUZatWBxi7pqqT0NA3XNSVXITmGl9Z15I8dmF/5Z/1BV/YI78Hb8ku/W
|
||||
WJWgB2tuxQ1WLzTQ4JrlJlsJkkcLSmaqQL29/XLhlR7mbAXehVe6xYotMH2LT6OU
|
||||
hwdZLtxMoir0/e4I6xwGqmJhitzOGbpvN4DRVxijgiZNTtAxU2R8Uxxjn+501Nrz
|
||||
jBxOZsvt+8rpQ3ZaHnYKWdqZAP6R175wcVwVIZ/sHhS9+ELZrg0F9Cgc+GnXD+f3
|
||||
YdRDfOLFFWFH8dJemstxAlMzq581q90TIAehTjCLb1mFjqjuStnPTepYumpcijSa
|
||||
MYTLXT3wQEZXMdj2QMmM/j3aW9erZR/a8l8MEmUSG3dBP+KLEHXaZ+wLBCzpVpfW
|
||||
cYe6ifDQTqglRCCIdgD4smNaLWcaqY3+6rGOGfaYePXyrTKsyUsCrmBVXSZLXkaW
|
||||
WxzQB5KkJvq24mTWnGYyLrnmkT185NHQqVDnx9WJAhwEEgECAAYFAlJySQ0ACgkQ
|
||||
Hpo7X4VAg7a92Q//e77qzttGBUYewY0eS0PtLcwafbVfKmmUOqC0nDv1Pz4t1JLB
|
||||
GpLh3U9Iw6nG5O30NpzTq48McWf7zZkikIRhAswF5DBata9BnJ15NGIeK7sPBR0b
|
||||
Z6TLugQafV70KafZqHE6RwjhkILYMAigK1ECzr6nyqWGKRpT5q7i6hY93rD8IhXa
|
||||
nkq+EAJj23819YBvMJc+tPAut7/hX4P4jhjWFbkHDzV0G6sCWzQbbrxgfWIte/Cs
|
||||
HXZUJN9Fin3EFxH+uTKWlWidHMET44pc4Dqnbsd3NRrmLtUy4gBYcjZMuiyHXTz/
|
||||
pG+WQGraeVB/KEyX5YQok4hNgk38F48Vfwj8mkH533lmOwkL1P8jgji1SeorZ3JT
|
||||
h9HySFc2oLGrkZGKCa3drWXZgcl9qml5KTyz/XhqUu418nShqudijx3JB+a5eYpc
|
||||
tJ9/18fKcNC4J0qW9Jctf1lg5XHBJdF8oWAlY4N8TTM647SzjLJ8iHzBVzAbVOVg
|
||||
8Pxba6k53PeqejlX9lBNfLCjJfHnMrZas0twXh1w2dV6MPnx1ohhtMa9BE4PM0FF
|
||||
r3qdF3b3uAqqXPduTOBc672maVcWE8TCZyc+HkoRtPomcWaEwtObLvfXoQLiaPAQ
|
||||
mnOfal8enoH15O1GZvb00dY5sQ9oi44Sx26GhiSQ1AVZqjIxkEAjCwDlSySJAhwE
|
||||
EwECAAYFAlJv6AMACgkQNuwWrNAYaCvuIBAAiup0EvygA61UgWi2XxsDI1HRAv93
|
||||
neSJMV9vx1ZTbeQWTfDwbbaJD7v2f07zSBM6Yur+Ew2lg1hAVbEaDVW0znafwPIL
|
||||
9vx5uTk18D2qz8oGzCYzV99D1KlcQus3LaUPqHI3NgKfW4Bm/mmjaGCM7JPbBxl3
|
||||
B9eeH3fbdE/QM827H3tzGP36PXH3ebr4NcFEeFCS16CTS6w7jIJu5UaMswPvTjgB
|
||||
68YP12wVdhm+UqlnWebIBX+7lKIQrPampWFLamHgBi+kIBrjH7vE3AwmyPmUNKp+
|
||||
Il48k+utj7clK2lhDxPb9WHcIp9S1Frg3wWs45EctgDVSxIJbsx4G+u+igwnYJ0b
|
||||
3fmU1I8MLZvQGm87VcaMDdUdTq2Cs9R3mm2y7SvNFjntCoezL8bp8IgPiVJRTkMe
|
||||
V3oCbbDuo15XIpMZmxZuEWOOU9y9NyTEJjhYyUhi8VNy6HDV95tiiXp6VYhZSaTW
|
||||
AKKEtrzQxf0ffab0fQjNJu92ck5WNk3bE40GuRwzmAG1PnlCkXSygxt8nrSLH13k
|
||||
mNIE/rZdMklT/aEY1Yk9QM9pay6iF4N+E7P8Bze27rSR+7ndzjpn/yx0oLnF/OMG
|
||||
uc5rP/rk7PpPyYo67v9+CmE2NDMSlFC1ObjyD97ZoAZbNIyJnXOYP2DBoKsze+ef
|
||||
viNElsuN8xkTiIK5AQ0EUmFBDwEIAJDxMtsu9ie8QN7eepcm+WuaY6Zbg3iDdPOO
|
||||
rQ4Ez+4oLaib5FHiZZjikdTsD7hlwcVuuhyEP2/bT9f29pbsrUVjHRgqJPdcuoOl
|
||||
UzAekgz17895Wh1gRarsbDIJDgs1878OSvIC/ek++qAWkzU4Sy8Psu9eJMTP6F0n
|
||||
PBOvet+iPwWDZO/dxrf+BnBb9wuBZnihpKMav2gJox0iYrqpnFOFlK/XdSYnZNYp
|
||||
IyBin1e+K2CG+TzF2M+KmdZE7FMhnTz95estAG2kC37VIVkCq8yHNVZqsgyAfMqp
|
||||
B1ayQI2r3FUBM0Hxp6z2+8v/Ezp6zhYCI+BiUC7VbrWSSuTlp4UAEQEAAYkBHwQY
|
||||
AQIACQUCUmFBDwIbDAAKCRAzU8nO8Qi1hKWYB/0R6ct3W2SEyoNuHTTKd5szIJig
|
||||
HYXrsqBa4XQGaVuFz7XZtcIbFFhEHjMrvTJpBWhuZ091Gp0AjV2ACNi2z+dSpXi1
|
||||
6QxdFb1/4us6mFEm86UIu4tcNN1V3WPiODpWfFkEys/vmqQImLjfSsdxzhMdX7Ye
|
||||
n1B3fxiKzwzsTlFbnNiBr2Mv7flDiUvMdbHmb/n0/B6a69SRYfVkJ3MZdl0gptJl
|
||||
XhJVdwjwVVl3bjvlQd0aZoLwJ7ntrWeMxOkbf8950vPVxemQ1frblB0zR98fuUNh
|
||||
X4cjrFTI9iJck7xLUwNZfgOz9PodfqUv4riMLczMmw3nwGZO/aJg0m6uWSWk
|
||||
=YraJ
|
||||
-----END PGP PUBLIC KEY BLOCK-----
|
4
qemu.obsinfo
Normal file
4
qemu.obsinfo
Normal file
@ -0,0 +1,4 @@
|
||||
name: qemu
|
||||
version: 9.0.1
|
||||
mtime: 1719581360
|
||||
commit: aaca3d0d6b11f122737d41bb934749ba718229da
|
2295
qemu.spec.in
2295
qemu.spec.in
File diff suppressed because it is too large
Load Diff
@ -1,26 +0,0 @@
|
||||
From: Bruce Rogers <brogers@suse.com>
|
||||
Date: Mon, 23 Nov 2020 07:13:23 -0700
|
||||
Subject: roms/Makefile: add --cross-file to qboot meson setup for aarch64
|
||||
|
||||
We add a --cross-file reference so that we can do cross compilation
|
||||
of qboot from an aarch64 build.
|
||||
|
||||
Signed-off-by: Bruce Rogers <brogers@suse.com>
|
||||
Signed-off-by: Dario Faggioli <dfaggioli@suse.com>
|
||||
---
|
||||
roms/Makefile | 2 +-
|
||||
1 file changed, 1 insertion(+), 1 deletion(-)
|
||||
|
||||
diff --git a/roms/Makefile b/roms/Makefile
|
||||
index 3d53bd528666b594ab3d6b631450..0e652aff895fe0680cf35e43b299 100644
|
||||
--- a/roms/Makefile
|
||||
+++ b/roms/Makefile
|
||||
@@ -199,7 +199,7 @@ MESON = meson
|
||||
NINJA = ninja
|
||||
qboot:
|
||||
mkdir -p qboot/build
|
||||
- $(MESON) setup $(if $(wildcard qboot/build/meson-private),--wipe,) qboot qboot/build
|
||||
+ $(MESON) setup $(if $(x86_64_cross_prefix),--cross-file qboot/cross.ini,) $(if $(wildcard qboot/build/meson-private),--wipe,) qboot qboot/build
|
||||
$(NINJA) -C qboot/build
|
||||
cp qboot/build/bios.bin ../pc-bios/qboot.rom
|
||||
|
@ -1,72 +0,0 @@
|
||||
From: Bruce Rogers <brogers@suse.com>
|
||||
Date: Sat, 19 Nov 2016 08:06:30 -0700
|
||||
Subject: roms/Makefile: pass a packaging timestamp to subpackages with date
|
||||
info
|
||||
|
||||
References: bsc#1011213
|
||||
|
||||
Certain rom subpackages build from qemu git-submodules call the date
|
||||
program to include date information in the packaged binaries. This
|
||||
causes repeated builds of the package to be different, wkere the only
|
||||
real difference is due to the fact that time build timestamp has
|
||||
changed. To promote reproducible builds and avoid customers being
|
||||
prompted to update packages needlessly, we'll use the timestamp of the
|
||||
VERSION file as the packaging timestamp for all packages that build in a
|
||||
timestamp for whatever reason.
|
||||
|
||||
Signed-off-by: Bruce Rogers <brogers@suse.com>
|
||||
---
|
||||
roms/Makefile | 14 ++++++++++++--
|
||||
1 file changed, 12 insertions(+), 2 deletions(-)
|
||||
|
||||
diff --git a/roms/Makefile b/roms/Makefile
|
||||
index 5e44d9789001979a0e9ef3183f90..3d53bd528666b594ab3d6b631450 100644
|
||||
--- a/roms/Makefile
|
||||
+++ b/roms/Makefile
|
||||
@@ -52,6 +52,12 @@ SEABIOS_EXTRAVERSION="-prebuilt.qemu.org"
|
||||
#
|
||||
EDK2_EFIROM = edk2/BaseTools/Source/C/bin/EfiRom
|
||||
|
||||
+# NB: Certain SUSE qemu subpackages use date information, but we want
|
||||
+# reproducible builds, so we use a pre-determined timestamp, rather
|
||||
+# than the current timestamp to acheive consistent results build to
|
||||
+# build.
|
||||
+PACKAGING_TIMESTAMP = $(shell date -r ../VERSION +%s)
|
||||
+
|
||||
default help:
|
||||
@echo "nothing is build by default"
|
||||
@echo "available build targets:"
|
||||
@@ -104,7 +110,7 @@ build-seabios-config-%: config.%
|
||||
|
||||
.PHONY: sgabios skiboot qboot
|
||||
sgabios:
|
||||
- $(MAKE) -C sgabios
|
||||
+ $(MAKE) -C sgabios PACKAGING_TIMESTAMP=$(PACKAGING_TIMESTAMP)
|
||||
cp sgabios/sgabios.bin ../pc-bios
|
||||
|
||||
|
||||
@@ -123,11 +129,13 @@ efi-rom-%: build-pxe-roms build-efi-roms edk2-basetools
|
||||
|
||||
build-pxe-roms:
|
||||
$(MAKE) -C ipxe/src CONFIG=qemu \
|
||||
+ PACKAGING_TIMESTAMP=$(PACKAGING_TIMESTAMP) \
|
||||
CROSS_COMPILE=$(x86_64_cross_prefix) \
|
||||
$(patsubst %,bin/%.rom,$(pxerom_targets))
|
||||
|
||||
build-efi-roms: build-pxe-roms
|
||||
$(MAKE) -C ipxe/src CONFIG=qemu \
|
||||
+ PACKAGING_TIMESTAMP=$(PACKAGING_TIMESTAMP) \
|
||||
CROSS_COMPILE=$(x86_64_cross_prefix) \
|
||||
$(patsubst %,bin-x86_64-efi/%.efidrv,$(pxerom_targets))
|
||||
|
||||
@@ -151,7 +159,9 @@ edk2-basetools:
|
||||
EXTRA_LDFLAGS='$(EDK2_BASETOOLS_LDFLAGS)'
|
||||
|
||||
slof:
|
||||
- $(MAKE) -C SLOF CROSS=$(powerpc64_cross_prefix) qemu
|
||||
+ $(MAKE) -C SLOF CROSS=$(powerpc64_cross_prefix) \
|
||||
+ PACKAGING_TIMESTAMP=$(PACKAGING_TIMESTAMP) \
|
||||
+ qemu
|
||||
cp SLOF/boot_rom.bin ../pc-bios/slof.bin
|
||||
|
||||
u-boot.e500:
|
@ -1,30 +0,0 @@
|
||||
From: Bruce Rogers <brogers@suse.com>
|
||||
Date: Thu, 20 Jun 2019 17:58:37 -0600
|
||||
Subject: roms: change cross compiler naming to be suse specific
|
||||
|
||||
Signed-off-by: Bruce Rogers <brogers@suse.com>
|
||||
---
|
||||
roms/edk2-funcs.sh | 10 +++++++++-
|
||||
1 file changed, 9 insertions(+), 1 deletion(-)
|
||||
|
||||
diff --git a/roms/edk2-funcs.sh b/roms/edk2-funcs.sh
|
||||
index cd6e4f2c82d2b346cdb7b3199bca..529e335121fcb60e419bfc656b6d 100644
|
||||
--- a/roms/edk2-funcs.sh
|
||||
+++ b/roms/edk2-funcs.sh
|
||||
@@ -116,7 +116,15 @@ qemu_edk2_get_cross_prefix()
|
||||
# force soft-float cross-compiler on Debian
|
||||
printf 'arm-linux-gnueabi-'
|
||||
else
|
||||
- printf '%s-linux-gnu-\n' "$gcc_arch"
|
||||
+ if [ "$emulation_target" == arm ]; then
|
||||
+ printf '%s-suse-linux-gnueabi-\n' "$gcc_arch"
|
||||
+ else
|
||||
+ if [ "$gcc_arch" == i686 ]; then
|
||||
+ printf '%s-suse-linux-\n' "i586"
|
||||
+ else
|
||||
+ printf '%s-suse-linux-\n' "$gcc_arch"
|
||||
+ fi
|
||||
+ fi
|
||||
fi
|
||||
}
|
||||
|
@ -1,22 +0,0 @@
|
||||
From: Bruce Rogers <brogers@suse.com>
|
||||
Date: Thu, 27 Jun 2019 09:38:43 -0600
|
||||
Subject: roms/sgabios: Fix csum8 to be built by host compiler
|
||||
|
||||
Signed-off-by: Bruce Rogers <brogers@suse.com
|
||||
---
|
||||
Makefile | 2 +-
|
||||
1 file changed, 1 insertion(+), 1 deletion(-)
|
||||
|
||||
diff --git a/roms/sgabios/Makefile b/roms/sgabios/Makefile
|
||||
index d2934c9f678dadfae5201b8507e9..d7e108faf69007056ddc08c4e63c 100644
|
||||
--- a/roms/sgabios/Makefile
|
||||
+++ b/roms/sgabios/Makefile
|
||||
@@ -55,7 +55,7 @@ sgabios.elf: .depend $(OBJS) $(LDSCRIPT) csum8
|
||||
$(LD) $(LDFLAGS) $(OBJS) -o $@
|
||||
|
||||
csum8: csum8.c
|
||||
- $(CC) -Wall -O2 -o $@ $<
|
||||
+ $(HOSTCC) -Wall -O2 -o $@ $<
|
||||
|
||||
sgabios.o: buildinfo
|
||||
|
@ -1,37 +0,0 @@
|
||||
From: Hannes Reinecke <hare@suse.de>
|
||||
Date: Fri, 25 Mar 2022 18:41:52 +0100
|
||||
Subject: scsi-generic: check for additional SG_IO status on completion
|
||||
|
||||
Git-commit: 0000000000000000000000000000000000000000
|
||||
References: bsc#1178049
|
||||
|
||||
SG_IO may return additional status in the 'status', 'driver_status',
|
||||
and 'host_status' fields. When either of these fields are set the
|
||||
command has not been executed normally, so we should not continue
|
||||
processing this command but rather return an error.
|
||||
scsi_read_complete() already checks for these errors,
|
||||
scsi_write_complete() does not.
|
||||
|
||||
Signed-off-by: Hannes Reinecke <hare@suse.de>
|
||||
Signed-off-by: Lin Ma <lma@suse.com>
|
||||
Signed-off-by: Dario Faggioli <dfaggioli@suse.com>
|
||||
---
|
||||
hw/scsi/scsi-generic.c | 5 ++++-
|
||||
1 file changed, 4 insertions(+), 1 deletion(-)
|
||||
|
||||
diff --git a/hw/scsi/scsi-generic.c b/hw/scsi/scsi-generic.c
|
||||
index aa3ae417ac726e9decf7e678e25f..8eb65f5f81bd4e998966571a3741 100644
|
||||
--- a/hw/scsi/scsi-generic.c
|
||||
+++ b/hw/scsi/scsi-generic.c
|
||||
@@ -397,7 +397,10 @@ static void scsi_write_complete(void * opaque, int ret)
|
||||
|
||||
aio_context_acquire(blk_get_aio_context(s->conf.blk));
|
||||
|
||||
- if (ret || r->req.io_canceled) {
|
||||
+ if (ret || r->req.io_canceled ||
|
||||
+ r->io_header.status != SCSI_HOST_OK ||
|
||||
+ (r->io_header.driver_status & SG_ERR_DRIVER_TIMEOUT) ||
|
||||
+ r->io_header.status != GOOD) {
|
||||
scsi_command_complete_noio(r, ret);
|
||||
goto done;
|
||||
}
|
@ -1,103 +0,0 @@
|
||||
From: Lin Ma <lma@suse.com>
|
||||
Date: Sat, 20 Nov 2021 18:05:57 +0800
|
||||
Subject: scsi-generic: replace logical block count of response of READ
|
||||
CAPACITY
|
||||
MIME-Version: 1.0
|
||||
Content-Type: text/plain; charset=UTF-8
|
||||
Content-Transfer-Encoding: 8bit
|
||||
|
||||
Git-commit: 0000000000000000000000000000000000000000
|
||||
References: [SUSE-JIRA] (SLE-20965)
|
||||
|
||||
While using SCSI passthrough, Following scenario makes qemu doesn't
|
||||
realized the capacity change of remote scsi target:
|
||||
1. online resize the scsi target.
|
||||
2. issue 'rescan-scsi-bus.sh -s ...' in host.
|
||||
3. issue 'rescan-scsi-bus.sh -s ...' in vm.
|
||||
|
||||
In above scenario I used to experienced errors while accessing the
|
||||
additional disk space in vm. I think the reasonable operations should
|
||||
be:
|
||||
1. online resize the scsi target.
|
||||
2. issue 'rescan-scsi-bus.sh -s ...' in host.
|
||||
3. issue 'block_resize' via qmp to notify qemu.
|
||||
4. issue 'rescan-scsi-bus.sh -s ...' in vm.
|
||||
|
||||
The errors disappear once I notify qemu by block_resize via qmp.
|
||||
|
||||
So this patch replaces the number of logical blocks of READ CAPACITY
|
||||
response from scsi target by qemu's bs->total_sectors. If the user in
|
||||
vm wants to access the additional disk space, The administrator of
|
||||
host must notify qemu once resizeing the scsi target.
|
||||
|
||||
Bonus is that domblkinfo of libvirt can reflect the consistent capacity
|
||||
information between host and vm in case of missing block_resize in qemu.
|
||||
E.g:
|
||||
...
|
||||
<disk type='block' device='lun'>
|
||||
<driver name='qemu' type='raw'/>
|
||||
<source dev='/dev/sdc' index='1'/>
|
||||
<backingStore/>
|
||||
<target dev='sda' bus='scsi'/>
|
||||
<alias name='scsi0-0-0-0'/>
|
||||
<address type='drive' controller='0' bus='0' target='0' unit='0'/>
|
||||
</disk>
|
||||
...
|
||||
|
||||
Before:
|
||||
1. online resize the scsi target.
|
||||
2. host:~ # rescan-scsi-bus.sh -s /dev/sdc
|
||||
3. guest:~ # rescan-scsi-bus.sh -s /dev/sda
|
||||
4 host:~ # virsh domblkinfo --domain $DOMAIN --human --device sda
|
||||
Capacity: 4.000 GiB
|
||||
Allocation: 0.000 B
|
||||
Physical: 8.000 GiB
|
||||
|
||||
5. guest:~ # lsblk /dev/sda
|
||||
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
|
||||
sda 8:0 0 8G 0 disk
|
||||
└─sda1 8:1 0 2G 0 part
|
||||
|
||||
After:
|
||||
1. online resize the scsi target.
|
||||
2. host:~ # rescan-scsi-bus.sh -s /dev/sdc
|
||||
3. guest:~ # rescan-scsi-bus.sh -s /dev/sda
|
||||
4 host:~ # virsh domblkinfo --domain $DOMAIN --human --device sda
|
||||
Capacity: 4.000 GiB
|
||||
Allocation: 0.000 B
|
||||
Physical: 8.000 GiB
|
||||
|
||||
5. guest:~ # lsblk /dev/sda
|
||||
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
|
||||
sda 8:0 0 4G 0 disk
|
||||
└─sda1 8:1 0 2G 0 part
|
||||
|
||||
Signed-off-by: Lin Ma <lma@suse.com>
|
||||
---
|
||||
hw/scsi/scsi-generic.c | 10 ++++++++--
|
||||
1 file changed, 8 insertions(+), 2 deletions(-)
|
||||
|
||||
diff --git a/hw/scsi/scsi-generic.c b/hw/scsi/scsi-generic.c
|
||||
index 3d35d307e1a2dcb1390b7c319b85..aa3ae417ac726e9decf7e678e25f 100644
|
||||
--- a/hw/scsi/scsi-generic.c
|
||||
+++ b/hw/scsi/scsi-generic.c
|
||||
@@ -322,11 +322,17 @@ static void scsi_read_complete(void * opaque, int ret)
|
||||
if (r->req.cmd.buf[0] == READ_CAPACITY_10 &&
|
||||
(ldl_be_p(&r->buf[0]) != 0xffffffffU || s->max_lba == 0)) {
|
||||
s->blocksize = ldl_be_p(&r->buf[4]);
|
||||
- s->max_lba = ldl_be_p(&r->buf[0]) & 0xffffffffULL;
|
||||
+ BlockBackend *blk = s->conf.blk;
|
||||
+ BlockDriverState *bs = blk_bs(blk);
|
||||
+ s->max_lba = bs->total_sectors - 1;
|
||||
+ stl_be_p(&r->buf[0], s->max_lba);
|
||||
} else if (r->req.cmd.buf[0] == SERVICE_ACTION_IN_16 &&
|
||||
(r->req.cmd.buf[1] & 31) == SAI_READ_CAPACITY_16) {
|
||||
s->blocksize = ldl_be_p(&r->buf[8]);
|
||||
- s->max_lba = ldq_be_p(&r->buf[0]);
|
||||
+ BlockBackend *blk = s->conf.blk;
|
||||
+ BlockDriverState *bs = blk_bs(blk);
|
||||
+ s->max_lba = bs->total_sectors - 1;
|
||||
+ stq_be_p(&r->buf[0], s->max_lba);
|
||||
}
|
||||
|
||||
/*
|
@ -1,149 +0,0 @@
|
||||
From: Bruce Rogers <brogers@suse.com>
|
||||
Date: Thu, 27 Jun 2019 10:15:24 -0600
|
||||
Subject: seabios: switch to python3 as needed
|
||||
|
||||
Switch to python3 the places where "python2" is explicitly referenced.
|
||||
(Ignore the uses of #!/usr/bin/env python, since that usage does the
|
||||
right thing in our build environment).
|
||||
Include changes proposed by the python3 2to3 tool.
|
||||
|
||||
Signed-off-by: Bruce Rogers <brogers@suse.com>
|
||||
---
|
||||
Makefile | 2 +-
|
||||
scripts/acpi_extract.py | 4 ++--
|
||||
scripts/acpi_extract_preprocess.py | 2 +-
|
||||
scripts/layoutrom.py | 28 ++++++++++++++--------------
|
||||
scripts/vgafixup.py | 2 +-
|
||||
5 files changed, 19 insertions(+), 19 deletions(-)
|
||||
|
||||
diff --git a/roms/seabios/Makefile b/roms/seabios/Makefile
|
||||
index c108f87de7683667d1a0cad6b9e5..408983026669e531dcb84230dd23 100644
|
||||
--- a/roms/seabios/Makefile
|
||||
+++ b/roms/seabios/Makefile
|
||||
@@ -22,7 +22,7 @@ LD=$(CROSS_PREFIX)ld
|
||||
OBJCOPY=$(CROSS_PREFIX)objcopy
|
||||
OBJDUMP=$(CROSS_PREFIX)objdump
|
||||
STRIP=$(CROSS_PREFIX)strip
|
||||
-PYTHON=python
|
||||
+PYTHON=python3
|
||||
CPP=cpp
|
||||
IASL:=iasl
|
||||
LD32BIT_FLAG:=-melf_i386
|
||||
diff --git a/roms/seabios/scripts/acpi_extract.py b/roms/seabios/scripts/acpi_extract.py
|
||||
index 3ed863b6a79412a1276bb905d08f..7ac054e626780253fcec78414b17 100755
|
||||
--- a/roms/seabios/scripts/acpi_extract.py
|
||||
+++ b/roms/seabios/scripts/acpi_extract.py
|
||||
@@ -1,4 +1,4 @@
|
||||
-#!/usr/bin/python
|
||||
+#!/usr/bin/python3
|
||||
# Copyright (C) 2011 Red Hat, Inc., Michael S. Tsirkin <mst@redhat.com>
|
||||
#
|
||||
# This file may be distributed under the terms of the GNU GPLv3 license.
|
||||
@@ -348,7 +348,7 @@ def main():
|
||||
# Pretty print output
|
||||
outstrs = ["/* DO NOT EDIT! This is an autogenerated file."
|
||||
" See scripts/acpi_extract.py. */"]
|
||||
- for array in output.keys():
|
||||
+ for array in list(output.keys()):
|
||||
otype = get_value_type(max(output[array]))
|
||||
outstrs.append("static unsigned %s %s[] = {" % (otype, array))
|
||||
odata = []
|
||||
diff --git a/roms/seabios/scripts/acpi_extract_preprocess.py b/roms/seabios/scripts/acpi_extract_preprocess.py
|
||||
index 2698118406d97c164783335c7fb6..6963847a8b5d3e4bf9340a67afe2 100755
|
||||
--- a/roms/seabios/scripts/acpi_extract_preprocess.py
|
||||
+++ b/roms/seabios/scripts/acpi_extract_preprocess.py
|
||||
@@ -1,4 +1,4 @@
|
||||
-#!/usr/bin/python
|
||||
+#!/usr/bin/python3
|
||||
# Copyright (C) 2011 Red Hat, Inc., Michael S. Tsirkin <mst@redhat.com>
|
||||
#
|
||||
# This file may be distributed under the terms of the GNU GPLv3 license.
|
||||
diff --git a/roms/seabios/scripts/layoutrom.py b/roms/seabios/scripts/layoutrom.py
|
||||
index abebf0211fa9627cec31cce76b8d..34b3e68f556af124346755e87c58 100755
|
||||
--- a/roms/seabios/scripts/layoutrom.py
|
||||
+++ b/roms/seabios/scripts/layoutrom.py
|
||||
@@ -81,8 +81,8 @@ def fitSections(sections, fillsections):
|
||||
section.finalsegloc = addr
|
||||
fixedsections.append((addr, section))
|
||||
if section.align != 1:
|
||||
- print("Error: Fixed section %s has non-zero alignment (%d)" % (
|
||||
- section.name, section.align))
|
||||
+ print(("Error: Fixed section %s has non-zero alignment (%d)" % (
|
||||
+ section.name, section.align)))
|
||||
sys.exit(1)
|
||||
fixedsections.sort(key=operator.itemgetter(0))
|
||||
firstfixed = fixedsections[0][0]
|
||||
@@ -142,10 +142,10 @@ def fitSections(sections, fillsections):
|
||||
# Report stats
|
||||
total = BUILD_BIOS_SIZE-firstfixed
|
||||
slack = total - totalused
|
||||
- print ("Fixed space: 0x%x-0x%x total: %d slack: %d"
|
||||
+ print(("Fixed space: 0x%x-0x%x total: %d slack: %d"
|
||||
" Percent slack: %.1f%%" % (
|
||||
firstfixed, BUILD_BIOS_SIZE, total, slack,
|
||||
- (float(slack) / total) * 100.0))
|
||||
+ (float(slack) / total) * 100.0)))
|
||||
|
||||
return firstfixed + BUILD_BIOS_ADDR
|
||||
|
||||
@@ -288,12 +288,12 @@ def doLayout(sections, config, genreloc):
|
||||
size32flat = sec32fseg_start - sec32flat_start
|
||||
size32init = sec32flat_start - sec32init_start
|
||||
sizelow = li.sec32low_end - li.sec32low_start
|
||||
- print("16bit size: %d" % size16)
|
||||
- print("32bit segmented size: %d" % size32seg)
|
||||
- print("32bit flat size: %d" % (size32flat + size32textfseg))
|
||||
- print("32bit flat init size: %d" % size32init)
|
||||
- print("Lowmem size: %d" % sizelow)
|
||||
- print("f-segment var size: %d" % size32fseg)
|
||||
+ print(("16bit size: %d" % size16))
|
||||
+ print(("32bit segmented size: %d" % size32seg))
|
||||
+ print(("32bit flat size: %d" % (size32flat + size32textfseg)))
|
||||
+ print(("32bit flat init size: %d" % size32init))
|
||||
+ print(("Lowmem size: %d" % sizelow))
|
||||
+ print(("f-segment var size: %d" % size32fseg))
|
||||
return li
|
||||
|
||||
|
||||
@@ -312,7 +312,7 @@ def outXRefs(sections, useseg=0, exportsyms=[], forcedelta=0):
|
||||
and (symbol.section.fileid != section.fileid
|
||||
or symbol.name != reloc.symbolname)):
|
||||
xrefs[reloc.symbolname] = symbol
|
||||
- for symbolname, symbol in xrefs.items():
|
||||
+ for symbolname, symbol in list(xrefs.items()):
|
||||
loc = symbol.section.finalloc
|
||||
if useseg:
|
||||
loc = symbol.section.finalsegloc
|
||||
@@ -482,8 +482,8 @@ def checkRuntime(reloc, rsection, data, chain):
|
||||
if section is None or '.init.' in section.name:
|
||||
return 0
|
||||
if '.data.varinit.' in section.name:
|
||||
- print("ERROR: %s is VARVERIFY32INIT but used from %s" % (
|
||||
- section.name, chain))
|
||||
+ print(("ERROR: %s is VARVERIFY32INIT but used from %s" % (
|
||||
+ section.name, chain)))
|
||||
sys.exit(1)
|
||||
return 1
|
||||
|
||||
@@ -695,7 +695,7 @@ def main():
|
||||
li = doLayout(sections, config, genreloc)
|
||||
|
||||
# Exported symbols
|
||||
- li.varlowsyms = [symbol for symbol in symbols['32flat'].values()
|
||||
+ li.varlowsyms = [symbol for symbol in list(symbols['32flat'].values())
|
||||
if (symbol.section is not None
|
||||
and symbol.section.finalloc is not None
|
||||
and '.data.varlow.' in symbol.section.name
|
||||
diff --git a/roms/seabios/scripts/vgafixup.py b/roms/seabios/scripts/vgafixup.py
|
||||
index 2053cd5d78e5935658e1fecec074..dc662480f909e27958fa906d73b1 100644
|
||||
--- a/roms/seabios/scripts/vgafixup.py
|
||||
+++ b/roms/seabios/scripts/vgafixup.py
|
||||
@@ -29,7 +29,7 @@ re_leal = re.compile(
|
||||
def handle_leal(sline):
|
||||
m = re_leal.match(sline[5:])
|
||||
if m is None or m.group('index') == '%esp':
|
||||
- print("Unable to fixup leal instruction: %s" % (sline,))
|
||||
+ print(("Unable to fixup leal instruction: %s" % (sline,)))
|
||||
sys.exit(-1)
|
||||
offset, base, index, scale, dest = m.group(
|
||||
'offset', 'base', 'index', 'scale', 'dest')
|
@ -1,36 +0,0 @@
|
||||
From: Bruce Rogers <brogers@suse.com>
|
||||
Date: Thu, 27 Jun 2019 10:15:24 -0600
|
||||
Subject: sgabios:Makefile: fix issues of build reproducibility
|
||||
MIME-Version: 1.0
|
||||
Content-Type: text/plain; charset=UTF-8
|
||||
Content-Transfer-Encoding: 8bit
|
||||
|
||||
It is desirable to produce the same bits on subsequent
|
||||
builds when the actual code of the package doesn't
|
||||
change. (bsc#1011213)
|
||||
|
||||
Signed-off-by: Bruce Rogers <brogers@suse.com>
|
||||
Signed-off-by: Andreas Färber <afaerber@suse.de>
|
||||
---
|
||||
Makefile | 8 ++++----
|
||||
1 file changed, 4 insertions(+), 4 deletions(-)
|
||||
|
||||
diff --git a/roms/sgabios/Makefile b/roms/sgabios/Makefile
|
||||
index 970b0ff37a1ae58e98d0527da215..d2934c9f678dadfae5201b8507e9 100644
|
||||
--- a/roms/sgabios/Makefile
|
||||
+++ b/roms/sgabios/Makefile
|
||||
@@ -14,10 +14,10 @@
|
||||
#
|
||||
# $Id$
|
||||
|
||||
-BUILD_DATE = \"$(shell date -u)\"
|
||||
-BUILD_SHORT_DATE = \"$(shell date -u +%D)\"
|
||||
-BUILD_HOST = \"$(shell hostname)\"
|
||||
-BUILD_USER = \"$(shell whoami)\"
|
||||
+BUILD_DATE = \"$(shell date --date='@$(PACKAGING_TIMESTAMP)' -u)\"
|
||||
+BUILD_SHORT_DATE = \"$(shell date --date='@$(PACKAGING_TIMESTAMP)' -u +%D)\"
|
||||
+BUILD_HOST = \"buildhost\"
|
||||
+BUILD_USER = \"geeko\"
|
||||
|
||||
CFLAGS := -Wall -Os -m32 -nostdlib
|
||||
|
@ -1,106 +0,0 @@
|
||||
From: Bruce Rogers <brogers@suse.com>
|
||||
Date: Mon, 24 Jul 2017 10:44:24 -0600
|
||||
Subject: stub out the SAN req's in int13
|
||||
|
||||
Include-If: %if 0%{?patch-possibly-applied-elsewhere}
|
||||
|
||||
We need to find some code or data to change so we can make the rom fit
|
||||
into the legacy size requirements. Comment out SAN support, and
|
||||
hopefully nobody will be impacted.
|
||||
|
||||
Signed-off-by: Bruce Rogers <brogers@suse.com>
|
||||
---
|
||||
src/arch/x86/interface/pcbios/int13.c | 21 +++++++++++++++++++++
|
||||
1 file changed, 21 insertions(+)
|
||||
|
||||
diff --git a/roms/ipxe/src/arch/x86/interface/pcbios/int13.c b/roms/ipxe/src/arch/x86/interface/pcbios/int13.c
|
||||
index ca789a0d154e1fe3c2508a3aefea..40c61419c0c134120d1ce7c81a1e 100644
|
||||
--- a/roms/ipxe/src/arch/x86/interface/pcbios/int13.c
|
||||
+++ b/roms/ipxe/src/arch/x86/interface/pcbios/int13.c
|
||||
@@ -23,6 +23,12 @@
|
||||
|
||||
FILE_LICENCE ( GPL2_OR_LATER_OR_UBDL );
|
||||
|
||||
+#define INCLUDE_SAN_HOOKS 0
|
||||
+#pragma GCC diagnostic push
|
||||
+#pragma GCC diagnostic ignored "-Wunused-parameter"
|
||||
+#pragma GCC diagnostic ignored "-Wunused-function"
|
||||
+#pragma GCC diagnostic ignored "-Wunused-variable"
|
||||
+
|
||||
#include <stdint.h>
|
||||
#include <stdlib.h>
|
||||
#include <limits.h>
|
||||
@@ -1243,6 +1249,7 @@ static void int13_unhook_vector ( void ) {
|
||||
*/
|
||||
static int int13_hook ( unsigned int drive, struct uri **uris,
|
||||
unsigned int count, unsigned int flags ) {
|
||||
+#if INCLUDE_SAN_HOOKS
|
||||
struct san_device *sandev;
|
||||
struct int13_data *int13;
|
||||
unsigned int natural_drive;
|
||||
@@ -1315,6 +1322,9 @@ static int int13_hook ( unsigned int drive, struct uri **uris,
|
||||
sandev_put ( sandev );
|
||||
err_alloc:
|
||||
return rc;
|
||||
+#else
|
||||
+ return -1;
|
||||
+#endif
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -1328,6 +1338,7 @@ static int int13_hook ( unsigned int drive, struct uri **uris,
|
||||
*/
|
||||
static void int13_unhook ( unsigned int drive ) {
|
||||
struct san_device *sandev;
|
||||
+#if INCLUDE_SAN_HOOKS
|
||||
|
||||
/* Find drive */
|
||||
sandev = sandev_find ( drive );
|
||||
@@ -1353,6 +1364,7 @@ static void int13_unhook ( unsigned int drive ) {
|
||||
|
||||
/* Drop reference to drive */
|
||||
sandev_put ( sandev );
|
||||
+#endif
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -1514,6 +1526,7 @@ static int int13_load_eltorito ( unsigned int drive, struct segoff *address ) {
|
||||
* Note that this function can never return success, by definition.
|
||||
*/
|
||||
static int int13_boot ( unsigned int drive, const char *filename __unused ) {
|
||||
+#if INCLUDE_SAN_HOOKS
|
||||
struct memory_map memmap;
|
||||
struct segoff address;
|
||||
int rc;
|
||||
@@ -1539,6 +1552,9 @@ static int int13_boot ( unsigned int drive, const char *filename __unused ) {
|
||||
}
|
||||
|
||||
return -ECANCELED; /* -EIMPOSSIBLE */
|
||||
+#else
|
||||
+ return -1;
|
||||
+#endif
|
||||
}
|
||||
|
||||
/** Maximum size of boot firmware table(s) */
|
||||
@@ -1605,6 +1621,7 @@ static int int13_install ( struct acpi_header *acpi ) {
|
||||
* @ret rc Return status code
|
||||
*/
|
||||
static int int13_describe ( void ) {
|
||||
+#if INCLUDE_SAN_HOOKS
|
||||
int rc;
|
||||
|
||||
/* Clear tables */
|
||||
@@ -1619,9 +1636,13 @@ static int int13_describe ( void ) {
|
||||
}
|
||||
|
||||
return 0;
|
||||
+#else
|
||||
+ return -1;
|
||||
+#endif
|
||||
}
|
||||
|
||||
PROVIDE_SANBOOT ( pcbios, san_hook, int13_hook );
|
||||
PROVIDE_SANBOOT ( pcbios, san_unhook, int13_unhook );
|
||||
PROVIDE_SANBOOT ( pcbios, san_boot, int13_boot );
|
||||
PROVIDE_SANBOOT ( pcbios, san_describe, int13_describe );
|
||||
+#pragma GCC diagnostic pop
|
@ -1,926 +0,0 @@
|
||||
[qemu-arm package document]
|
||||
|
||||
SLES 15 SP4 QEMU/KVM RELATED SUPPORT STATEMENTS
|
||||
===============================================
|
||||
|
||||
Overview
|
||||
--------
|
||||
|
||||
The QEMU based packages included with SLES 15 SP4 provide a large variety of
|
||||
features, from the very latest customer requests to features of questionable
|
||||
quality or value. The linux kernel includes components which contribute KVM
|
||||
virtualization features as well. This document was created to assist the user
|
||||
in deciding which features can be relied upon to build enterprise class
|
||||
virtualization solutions. KVM based virtualization for x86 (Intel 64/AMD64),
|
||||
for IBM System z (s390x), and for the ARM64 architecture (AArch64) are offered
|
||||
at the L3 (full support) level. The bulk of this document deals with L3
|
||||
supported features and is primarily ARM64 centric. This document should be
|
||||
considered a companion to the standard virtualization documentation delivered
|
||||
with the product.
|
||||
|
||||
KVM is implemented in linux kernel modules which enable the linux kernel to
|
||||
function as an integral part of the KVM hypervisor. The hypervisor-guest
|
||||
interaction is managed by QEMU through the /dev/kvm ioctl interface. The linux
|
||||
host assists in the virtualization of storage, networking and display
|
||||
resources as well as allowing direct hardware passthrough of PCI and USB
|
||||
devices. Linux memory and cpu management features are used by QEMU/KVM to
|
||||
enable guests to share those host resources as efficiently as possible.
|
||||
|
||||
QEMU is a primary component of KVM based virtualization. The QEMU emulator
|
||||
binary qemu-system-aarch64 is the program to use to access KVM virtualization.
|
||||
When using this program, the -machine option accel=kvm (or its alias
|
||||
-enable-kvm) or --accel kvm option must be specified for KVM acceleration to
|
||||
be used by the guest.
|
||||
|
||||
Libvirt is the preferred means of accessing QEMU/KVM functionality and is
|
||||
documented elsewhere. This document focuses on the features and direct usage
|
||||
of QEMU/KVM as provided by the QEMU based packages.
|
||||
|
||||
Major QEMU/KVM Supported Features
|
||||
---------------------------------
|
||||
|
||||
- KVM virtualization is accomplished by using the QEMU program in KVM
|
||||
acceleration mode. KVM acceleration requires that both guest and host have
|
||||
the same fundamental architecture.
|
||||
|
||||
- Guest images created under previous QEMU versions are supported by machine
|
||||
version compatibilities built into more recent QEMU versions.
|
||||
|
||||
- For ease of use, the QEMU program has defaults which represent traditional
|
||||
usage patterns.
|
||||
|
||||
- Guest virtual machine characteristics are specified by a combination of
|
||||
internal defaults, options provided on the QEMU program command-line, runtime
|
||||
configurations set via the monitor interfaces and optional config files. The
|
||||
runtime control of a VM is effected either through the Human Monitor
|
||||
"Protocol" (HMP), or the JSON based programmatical QEMU Monitor Protocol (QMP)
|
||||
interface. For QMP details, see qemu-qmp-ref man page.
|
||||
Since a KVM guest runs in the context of a normal linux process, some types
|
||||
of execution controls are managed with linux tools.
|
||||
|
||||
- QEMU is compatible with EDK II based UEFI firmware available with SLES 15 SP4,
|
||||
which allow boot options common to physical systems, along with other features
|
||||
tailored to virtualization. Various VGABIOS ROMs, from the SEABIOS project,
|
||||
are also available.
|
||||
|
||||
- Some QEMU messages have been localized to various languages. This is provided
|
||||
by the optional qemu-lang package. Keyboard mappings for various nationalities
|
||||
is also provided.
|
||||
|
||||
- Virtual machine lifecycle controls include startup through the UEFI BIOS or
|
||||
kernel boot, ACPI based shutdown, execution pausing, the saving and restoring
|
||||
of machine state or disk state, VM migration to another host, and
|
||||
miscellaneous controls available through the "monitors" mentioned above.
|
||||
|
||||
- Guest execution state may be "moved" in both time (save/restore) and space
|
||||
(static and live migration). These migrations or save/restore operations can
|
||||
take place either from certain prior SLES versioned hosts to a SLES 15 SP4
|
||||
host or between hosts of the same version. Certain other restrictions also
|
||||
apply.
|
||||
|
||||
- Security considerations include privileged helpers and a security model which
|
||||
allows running guests as a non-root user.
|
||||
|
||||
- QEMU provides best effort reuse of existing disk images, including those with
|
||||
systems installed, through geometry probing. Also disk images produced by
|
||||
other popular virtualization technologies may be imported into QEMU supported
|
||||
storage formats. These QEMU formats include features which exploit the
|
||||
benefits of virtualization.
|
||||
|
||||
- Memory, cpu and disk space overcommit are possible and can be beneficial when
|
||||
done responsibly. Additional management of these resources comes in the form
|
||||
of memory ballooning or hotplug, host KSM, vcpu hot-add, online disk resizing,
|
||||
trim, discard and hole punching.
|
||||
|
||||
- Guest performance is enhanced through the use of virtio devices, various disk
|
||||
caching modes, network acceleration via the vhost-net kernel module, multi-
|
||||
queue network transmit capabilities, host transparent huge pages (THP) and
|
||||
direct hugetlb usage. Physical PCI and USB devices may also be passed through
|
||||
to the guest, including SR-IOV VF's.
|
||||
|
||||
- The guest UI is accessable via GTK, VNC, Spice, and serial (including curses
|
||||
TUI) interfaces.
|
||||
|
||||
- Guest timekeeping is supported in a variety of ways, including a paravirtual
|
||||
clocksource, and options for the various guest clocks for how to handle the
|
||||
timeslicing of the guest's execution on the host.
|
||||
|
||||
- In addition to the para-virtualized devices already mentioned, other devices
|
||||
and infrastructure designed to avoid virtualization "problem areas" are
|
||||
available such as SPICE graphics, vmmouse emulation, tablet style pointer
|
||||
interfaces and virtio based UI interfaces.
|
||||
|
||||
- A built-in user-mode network (SLIRP) stack is available.
|
||||
|
||||
- Portions of the host file system may be shared with a guest by using virtFS.
|
||||
|
||||
- A guest "agent" is available for SLES 15 SP4 KVM guests via the
|
||||
qemu-guest-agent package. This allows some introspection and control of the
|
||||
guest OS environment from the host.
|
||||
|
||||
QEMU/KVM Technology Previews
|
||||
----------------------------
|
||||
|
||||
- All features indicated as not being supported in this document fall under the
|
||||
Technology Preview definition contained in the main product's release notes.
|
||||
|
||||
Noteworthy QEMU/KVM Unsupported Features
|
||||
----------------------------------------
|
||||
|
||||
- Note that some features are unsupported simply due to lack of validation. If
|
||||
an existing feature is desired, but not marked supported, let SUSE know about
|
||||
your requirements.
|
||||
|
||||
- The TCG "acceleration" mode may be helpful for problem isolation, but
|
||||
otherwise presents insufficient benefit and stability.
|
||||
|
||||
- GlusterFS integration is not enabled.
|
||||
|
||||
- 32 bit ARM KVM has never been supported by SUSE, but it's worth noting that
|
||||
this capability will cease to even be possible in a near-future QEMU/KVM
|
||||
(kernel) combination.
|
||||
|
||||
Deprecated, Superseded, Modified and Dropped Features
|
||||
-----------------------------------------------------
|
||||
|
||||
- https://qemu-project.gitlab.io/qemu/about/deprecated.html and
|
||||
https://qemu-project.gitlab.io/qemu/about/removed-features.html
|
||||
These websites track features deprecation and removal at the upstream
|
||||
development level. Our qemu package inherits this community direction, but be
|
||||
aware that we can and will deviate as needed. Those deviations and additional
|
||||
information can be found in this section. Feature deprecation as well as
|
||||
removed features are also tracked in the "System Emulation" section of the
|
||||
documentation installed with the qemu package.
|
||||
|
||||
- qemu-img: Deprecate use of -b without -F. Creating an image that requires
|
||||
format probing of the backing image is potentially unsafe and is now
|
||||
deprecated.
|
||||
|
||||
- Aspeed swift-bmc machine is deprecated. It can be easily replaced by the
|
||||
witherspoon-bmc or the romulus-bmc machines.
|
||||
|
||||
- The previously non-persistent backing file with pmem=on is deprecated. Modify
|
||||
VM configuration to set pmem=off to continue using fake NVDIMM with backing
|
||||
file or move backing file to NVDIMM storage and keep pmem=on.
|
||||
|
||||
- The use of "?" as a parameter to "-cpu", "-soundhw", "-device", "-M",
|
||||
"-machine" and "-d" is now considered deprecated. Use "help"
|
||||
instead.
|
||||
|
||||
- The use of "if=scsi" as a parameter to "-drive" does not work anymore with PC
|
||||
machine types, as it created an obsolete SCSI controller model.
|
||||
|
||||
- Use of aio=native without direct cache mode also being specified (cache=none,
|
||||
cache=directsync, or cache.direct=on) is no longer allowed.
|
||||
|
||||
- The use of image encryption in qcow and qcow2 formats is now considered
|
||||
deprecated.
|
||||
Analysis has shown it to be weak encryption, in addition to suffering from
|
||||
poor design. Images can easily be converted to a non-encrypted format.
|
||||
|
||||
- Use of acpi, boot-opts, and smp-opts in a -readconfig config file are now
|
||||
considered deprecated. In the future those names will be standardized to
|
||||
acpitable, boot, and smp respectively.
|
||||
|
||||
- These previously supported command line options are now considered deprecated:
|
||||
-display sdl,window_close= (use -display sdl,window-close)
|
||||
-no-quit (use -display ...,window-close=off)
|
||||
-chardev tty (use serial name instead)
|
||||
-chardev paraport (use parallel name instead)
|
||||
-device virtio-blk,scsi= (use virtio-scsi instead)
|
||||
-device virtio-blk-pci,scsi= (use virtio-scsi instead)
|
||||
-enable-fips (not really helpful - see https://git.qemu.org/?p=qemu.git;a=commit;h=166310299a1e7824bbff17e1f016659d18b4a559 for details)
|
||||
-realtime mlock= (use -overcommit mem-lock= instead)
|
||||
-spice password=string (use password-string option instead)
|
||||
-writeconfig (no replacement - never really worked right)
|
||||
-share and noshare must be replaced by share=on/share=off
|
||||
-nodelay must be replaced by nodelay=on rather than delay=off
|
||||
-object-add options opened=on and loaded=on (both had no effect)
|
||||
|
||||
- These previously supported command line options are no longer supported:
|
||||
-device ide-drive (use ide-hd or ide-cd instead)
|
||||
-device scsi-disk (use scsi-hd or scsi-cd instead)
|
||||
|
||||
- These previously supported command line options are no longer recognized:
|
||||
-balloon (use -device virtio-balloon instead)
|
||||
-clock
|
||||
-device ivshmem (use ivshmem-doorbell or ivshmem-plain instead)
|
||||
-device pc-sysfw (no longer needed)
|
||||
-device pci-assign, -device kvm-pci-assign (use -device vfio-pci instead)
|
||||
-display sdl
|
||||
-no-frame
|
||||
-nodefconfig (use -no-user-config instead)
|
||||
-realtime ...
|
||||
-sdl
|
||||
-show-cursor
|
||||
-virtioconsole (use -device virtconsole instead)
|
||||
|
||||
- The previously unsupported machine type xlnx-ep108 is no longer recognized
|
||||
(used xlnx-zcu102 unstead)
|
||||
|
||||
- Specifying a cpu feature with both "+feature/-feature" and "feature=on/off"
|
||||
will now cause a warning. The current behavior for this combination where
|
||||
"+feature/-feature" wins over "feature=on/off", will be changed going forward
|
||||
so that "+feature" and "-feature" will be synonyms for "feature=on" and
|
||||
"feature=off" respectively.
|
||||
|
||||
- The previously supported blkdev-add QMP command has been flagged as lacking
|
||||
and could possibly change syntax in the future.
|
||||
|
||||
- This previously unsupported command line option is now deprecated:
|
||||
-soundhw (use -device ... instead)
|
||||
|
||||
- These previously unsupported command line options are no longer recognized:
|
||||
-bt
|
||||
-device at24c-eeprom
|
||||
-device mmio_interface
|
||||
-device ssi-sd
|
||||
-device tpm-tis-device
|
||||
-device u2f-passthru
|
||||
-device vhost-user-vsock-pci-transitional
|
||||
-device vhost-vsock-pci-transitional
|
||||
-device virtio-iommu-pci-transitional
|
||||
-enable-hax
|
||||
-tb-size
|
||||
-tdf
|
||||
-xen-create
|
||||
|
||||
- These previously supported QMP commands are now deprecated:
|
||||
<previously mentioned items have been moved to another category>
|
||||
|
||||
- These previously supported QMP commands are no longer recognized:
|
||||
info cpustats
|
||||
block_passwd
|
||||
change (use blockdev-change-medium or change-vnc-password instead)
|
||||
cpu-add (use device_add instead)
|
||||
migrate-set-cache-size (use migrate-set-parameters instead)
|
||||
migrate_set_downtime (use migrate-set-parameters instead)
|
||||
migrate_set_speed (use migrate-set-parameters instead)
|
||||
query-cpus (use query-cpus-fast instead)
|
||||
query-events
|
||||
query-migrate-cache-size (use query-migrate-parameters instead)
|
||||
|
||||
- These previously supported monitor commands are now deprecated:
|
||||
change
|
||||
|
||||
- These previously supported monitor commands are no longer recognized:
|
||||
info cpustats
|
||||
block_passwd ...
|
||||
cpu-add (use device_add instead)
|
||||
migrate_set_cache_size
|
||||
migrate_set_downtime
|
||||
migrate_set_speed
|
||||
pci_add (use device_add instead)
|
||||
pci_del (use device_del instead)
|
||||
usb_add (use device_add instead)
|
||||
usb_del (use device_del instead)
|
||||
|
||||
- These previously unsupported monitor command are now deprecated:
|
||||
<previously mentioned items have been moved to another category>
|
||||
|
||||
- These previously unsupported monitor commands are no longer recognized:
|
||||
acl_add ...
|
||||
acl_policy ...
|
||||
acl_remove ...
|
||||
acl_reset ...
|
||||
acl_show ...
|
||||
host_net_add
|
||||
host_net_remove
|
||||
|
||||
- These previously unsupported QMP commands are now supported under a new name:
|
||||
x-block-dirty-bitmap-disable (use block-dirty-bitmap-disable instead)
|
||||
x-block-dirty-bitmap-enable (use block-dirty-bitmap-enable instead)
|
||||
x-block-dirty-bitmap-merge (use block-dirty-bitmap-merge instead)
|
||||
x-block-latency-histogram-set (use block-latency-histogram-set instead)
|
||||
x-blockdev-create (use blockdev-create instead)
|
||||
|
||||
- This previously unsupported QMP commands is no longer recognized:
|
||||
x-nbd-server-add-bitmap
|
||||
|
||||
- Due to upstream's decision to no longer fully support the qed storage format
|
||||
going forward (since it really provides no benefit over qcow2 and is now no
|
||||
longer actively maintained upstream), creating qed storage images is no longer
|
||||
supported and it is highly discouraged to continue using existing qed images.
|
||||
They should instead be converted to another supported format.
|
||||
|
||||
QEMU Command-Line and Monitor Syntax and Support
|
||||
------------------------------------------------
|
||||
|
||||
- The QEMU program command-line syntax is as follows:
|
||||
qemu-system-aarch64 [options]
|
||||
|
||||
Where 'options' are taken from the options listed below.
|
||||
The images used with -drive or -cdrom, may be in the raw (no format) or qcow2
|
||||
storage formats, and may be located in files within the host filesystem,
|
||||
logical volumes, host physical disks, or network based storage. Read only
|
||||
media may also be accessed via URL style protocol specifiers.
|
||||
|
||||
Note that as a general rule, as new command line options are added which serve
|
||||
to replace an older option or interface, you are strongly encouraged to adapt
|
||||
your usage to the new option. The new option is being introduced to provide
|
||||
better functionality and usability going forward. In some cases existing
|
||||
problems or even bugs in older interfaces cannot be fixed due to functional
|
||||
expectations, but are resolved in the newer interface or option.
|
||||
This advice includes moving to the most recent machine type (eg virt-6.1
|
||||
instead of virt-6.0) if possible.
|
||||
|
||||
- The following command line options are supported:
|
||||
-accel ...
|
||||
-action ...
|
||||
-add-fd ...
|
||||
-alt-grab
|
||||
-append ...
|
||||
-audio-help
|
||||
-audiodev
|
||||
-bios ...
|
||||
-blockdev ...
|
||||
-boot ...
|
||||
-cdrom ...
|
||||
-chardev ...
|
||||
-compat ...
|
||||
-cpu host
|
||||
-ctrl-grab
|
||||
-d ...
|
||||
-daemonize
|
||||
-debugcon ...
|
||||
-device
|
||||
|
||||
[VGA|rtl8139|virtio-net-pci|virtio-blk-pci|virtio-balloon-pci|
|
||||
virtio-9p-pci|usb-hub|usb-ehci|usb-tablet|usb-storage|usb-mouse|
|
||||
usb-kbd|virtserialport|virtconsole|virtio-serial-pci|i82559er|
|
||||
virtio-scsi-pci|scsi-cd|scsi-hd|scsi-generic|scsi-disk|scsi-block|
|
||||
pci-serial|pci-serial-2x|pci-serial-4x|ich9-ahci|usb-host|usb-serial|
|
||||
usb-wacom-tablet|usb-braille|usb-net|pci-ohci|virtio-rng-pci|i6300esb|
|
||||
qxl|qxl-vga|pvpanic|vfio-pci|ivshmem-doorbell|ivshmem-plain|
|
||||
pci-bridge|megasas-gen2|e1000e|e1000|vmcoreinfo|pcie-pci-bridge|
|
||||
vhost-user-blk|vhost-user-blk-pci|vhost-user-scsi|vhost-user-scsi-pci|
|
||||
vhost-vsock-pci|virtio-crypto-pci|virtio-vga|
|
||||
vhost-scsi-pci-non-transitional|vhost-scsi-pci-transitional|
|
||||
vhost-user-blk-pci-non-transitional|vhost-user-blk-pci-transitional|
|
||||
vhost-user-scsi-pci-non-transitional|vhost-user-scsi-pci-transitional|
|
||||
vhost-vsock-pci-non-transitional|virtio-9p-pci-non-transitional|
|
||||
virtio-9p-pci-transitional|virtio-balloon-pci-non-transitional|
|
||||
virtio-balloon-pci-transitional|virtio-blk-pci-non-transitional|
|
||||
virtio-blk-pci-transitional|virtio-input-host-pci-non-transitional|
|
||||
virtio-input-host-pci-transitional|virtio-net-pci-non-transitional|
|
||||
virtio-net-pci-transitional|virtio-rng-pci-non-transitional|
|
||||
virtio-rng-pci-transitional|virtio-scsi-pci-non-transitional|
|
||||
virtio-scsi-pci-transitional|virtio-serial-pci-non-transitional|
|
||||
virtio-serial-pci-transitional|vhost-user-fs-pci|vhost-user-gpu|
|
||||
vhost-user-pci-pci|vhost-user-input|vhost-user-input-pci|
|
||||
vhost-user-vga|virtio-mmio|guest-loader|nvme-subsys|pvpanic-pci]
|
||||
(the following are aliases of these supported devices: ahci|
|
||||
virtio-blk|virtio-net|virtio-serial|virtio-balloon| virtio-9p|
|
||||
virtio-input-host|virtio-keyboard|virtio-mouse|virtio-tablet|
|
||||
virtio-gpu|virtio-scsi|virtio-rng|e1000-82540em)
|
||||
|
||||
-dfilter range, ...
|
||||
-display ...
|
||||
-drive
|
||||
|
||||
... (if specified if=[virtio] and format=[qcow2|raw] and
|
||||
snapshot=off only)
|
||||
|
||||
-echr ...
|
||||
-enable-fips
|
||||
-enable-kvm
|
||||
-fsdev ...
|
||||
-full-screen
|
||||
-fw_cfg ...
|
||||
-gdb ...
|
||||
-global ...
|
||||
-h
|
||||
-help
|
||||
-incoming ...
|
||||
-initrd ...
|
||||
-iscsi ...
|
||||
-k ...
|
||||
-kernel ...
|
||||
-loadvm ...
|
||||
-m ...
|
||||
-M [help|none|virt-2.6|virt-2.11|virtio-3.1|virt-4.2|virt-5.2|virt-6.0|virt-6.1]
|
||||
-machine [help|none|virt-2.6|virt-2.11|virt-3.1|virt-4.2|virt-5.2|virt-6.0|virt-6.1]
|
||||
-mem-path ...
|
||||
-mem-prealloc
|
||||
-mon ...
|
||||
-monitor ...
|
||||
-msg ...
|
||||
-name ...
|
||||
-net
|
||||
|
||||
[bridge|l2tpv3|nic|none|tap|user] ... (for model= only e1000, rtl8139,
|
||||
and virtio are supported)
|
||||
|
||||
-netdev [bridge|tap|user] ...
|
||||
-nic ...
|
||||
-no-acpi
|
||||
-nodefaults
|
||||
-nographic
|
||||
-no-quit
|
||||
-no-reboot
|
||||
-no-shutdown
|
||||
-no-user-config
|
||||
-object ...
|
||||
-only-migratable
|
||||
-parallel ...
|
||||
-pidfile ...
|
||||
-plugin ...
|
||||
-qmp ...
|
||||
-qmp-pretty ...
|
||||
-readconfig ...
|
||||
-rtc ...
|
||||
-runas ...
|
||||
-s
|
||||
-S
|
||||
-sandbox ...
|
||||
-seed ...
|
||||
-serial ...
|
||||
-smbios ...
|
||||
-smp ...
|
||||
-spice
|
||||
-tpmdev passthrough ...
|
||||
-trace ...
|
||||
-usb
|
||||
-usbdevice [braile|disk|host|mouse|net|serial|tablet]
|
||||
-uuid ...
|
||||
-version
|
||||
-vga [none|qxl|std|virtio]
|
||||
-virtfs ...
|
||||
-vnc ...
|
||||
-watchdog ...
|
||||
-watchdog-action ...
|
||||
-writeconfig ...
|
||||
|
||||
- The following monitor commands are supported:
|
||||
?
|
||||
announce_self ...
|
||||
balloon ...
|
||||
block_resize ...
|
||||
boot_set ...
|
||||
c
|
||||
change ...
|
||||
chardev-add ...
|
||||
chardev-change ...
|
||||
chardev-remove ...
|
||||
chardev-send-break ...
|
||||
client_migrate_info ...
|
||||
closefd ...
|
||||
cont
|
||||
cpu ...
|
||||
delvm ...
|
||||
device_add ...
|
||||
device_del ...
|
||||
drive_add ...
|
||||
drive_backup ...
|
||||
drive_del ...
|
||||
dump_guest_memory ...
|
||||
eject ...
|
||||
gdbserver ...
|
||||
gpa2hpa ...
|
||||
gpa2hva ...
|
||||
gva2gpa ...
|
||||
help
|
||||
i ...
|
||||
info ...
|
||||
loadvm ...
|
||||
logfile ...
|
||||
logitem ...
|
||||
mce ...
|
||||
memsave ...
|
||||
migrate ...
|
||||
migrate_cancel
|
||||
migrate_continue ...
|
||||
migrate_incoming
|
||||
migrate_pause
|
||||
migrate_recover ...
|
||||
migrate_set_capability ...
|
||||
migrate_set_parameter ...
|
||||
migrate_start_post_copy
|
||||
mouse_button ...
|
||||
mouse_move ...
|
||||
mouse_set ...
|
||||
nmi ...
|
||||
o ...
|
||||
object_add ...
|
||||
object_del ...
|
||||
p ...
|
||||
pmemsave ...
|
||||
print ...
|
||||
q
|
||||
qemu-io ...
|
||||
qom-list
|
||||
qom-set
|
||||
ringbuf_read ...
|
||||
ringbuf_write ...
|
||||
savevm ...
|
||||
screendump ...
|
||||
sendkey ...
|
||||
snapshot_blkdev_internal ...
|
||||
snapshot_delete_blkdev_internal ...
|
||||
stop
|
||||
sum ...
|
||||
system_powerdown
|
||||
system_reset
|
||||
system_wakeup
|
||||
trace-event ...
|
||||
watchdog_action ...
|
||||
x ...
|
||||
xp ...
|
||||
|
||||
- The following QMP commands are supported:
|
||||
add_client
|
||||
add-fd
|
||||
announce-self
|
||||
balloon
|
||||
blockdev-add
|
||||
blockdev-backup
|
||||
blockdev-change-medium
|
||||
blockdev-close-tray
|
||||
blockdev-create
|
||||
blockdev-del
|
||||
blockdev-mirror
|
||||
blockdev-open-tray
|
||||
blockdev-snapshot
|
||||
blockdev-snapshot-delete-internal-sync
|
||||
blockdev-snapshot-internal-sync
|
||||
blockdev-snapshot-sync
|
||||
block-commit
|
||||
block-dirty-bitmap-add
|
||||
block-dirty-bitmap-clear
|
||||
block-dirty-bitmap-disable
|
||||
block-dirty-bitmap-enable
|
||||
block-dirty-bitmap-merge
|
||||
block-dirty-bitmap-remove
|
||||
block-export-add
|
||||
block-export-del
|
||||
block-latency-histogram-set
|
||||
block_resize
|
||||
block_set_io_throttle
|
||||
block-set-write-threshold
|
||||
block_stream
|
||||
calc-dirty-rate
|
||||
change-vnc-password
|
||||
chardev-add
|
||||
chardev-change
|
||||
chardev-remove
|
||||
chardev-send-break
|
||||
client_migrate_info
|
||||
closefd
|
||||
cont
|
||||
cpu
|
||||
device_add
|
||||
device_del
|
||||
device-list-properties
|
||||
display-reload
|
||||
dump-guest-memory
|
||||
eject
|
||||
expire_password
|
||||
getfd
|
||||
human-monitor-command
|
||||
inject-nmi
|
||||
input-send-event
|
||||
job-cancel
|
||||
job-complete
|
||||
job-dismiss
|
||||
job-finalize
|
||||
job-pause
|
||||
job-resume
|
||||
memsave
|
||||
migrate
|
||||
migrate_cancel
|
||||
migrate-continue
|
||||
migrate-incoming
|
||||
migrate-pause
|
||||
migrate-resume
|
||||
migrate-set-capabilities
|
||||
migrate-set-parameters
|
||||
migrate-start-postcopy
|
||||
object-add
|
||||
object-del
|
||||
pmemsave
|
||||
qmp_capabilities
|
||||
qom-get
|
||||
qom-list
|
||||
qom-list-types
|
||||
qom-set
|
||||
query-acpi-ospm-status
|
||||
query-balloon
|
||||
query-block
|
||||
query-block-exports
|
||||
query-block-jobs
|
||||
query-blockstats
|
||||
query-chardev
|
||||
query-chardev-backends
|
||||
query-command-line-options
|
||||
query-commands
|
||||
query-cpu-definitions
|
||||
query-cpu-model-expansion
|
||||
query-cpus-fast
|
||||
query-current-machine
|
||||
query-display-options
|
||||
query-dirty-rate
|
||||
query-dump
|
||||
query-dump-guest-memory-capability
|
||||
query-fdsets
|
||||
query-gic-capabilities
|
||||
query-hotpluggable-cpus
|
||||
query-iothreads
|
||||
query-jobs
|
||||
query-kvm
|
||||
query-machines
|
||||
query-memdev
|
||||
query-memory-devices
|
||||
query-memory-size-summary
|
||||
query-mice
|
||||
query-migrate
|
||||
query-migrate-capabilities
|
||||
query-migrate-parameters
|
||||
query-name
|
||||
query-named-block-nodes
|
||||
query-pci
|
||||
query-pr-managers
|
||||
query-qmp-schema
|
||||
query-rocker
|
||||
query-rocker-of-dpa-flows
|
||||
query-rocker-of-dpa-groups
|
||||
query-rocker-ports
|
||||
query-rx-filter
|
||||
query-spice
|
||||
query-status
|
||||
query-target
|
||||
query-tpm
|
||||
query-tpm-models
|
||||
query-tpm-types
|
||||
query-uuid
|
||||
query-version
|
||||
query-vnc
|
||||
query-vnc-servers
|
||||
query-yank
|
||||
query-xen-replication-status
|
||||
quit
|
||||
remove-fd
|
||||
ringbuf-read
|
||||
ringbuf-write
|
||||
screendump
|
||||
send-key
|
||||
set-action
|
||||
set_link
|
||||
set_password
|
||||
snapshot-delete
|
||||
snapshot-load
|
||||
snapshot-save
|
||||
stop
|
||||
system_powerdown
|
||||
system_reset
|
||||
system_wakeup
|
||||
trace-event-get-state
|
||||
trace-event-set-state
|
||||
transaction
|
||||
watchdog-set-action
|
||||
yank
|
||||
|
||||
- The following command line options are unsupported:
|
||||
|
||||
-acpitable ...
|
||||
-chroot ...
|
||||
-cpu ... (all except host)
|
||||
-curses
|
||||
-device
|
||||
|
||||
[160s33b|320s33b|640s33b|a15mpcore_priv|a9mpcore_priv|a9-scu|adlib|
|
||||
ads7846|allwinner-a10|allwinner-a10-pic|allwinner-A10-timer|
|
||||
allwinner-emac|amd-iommu|AMDVI-PCI|arm1026-arm-cpu|arm1136-arm-cpu|
|
||||
arm1136-r2-arm-cpu|arm1176-arm-cpu|arm11mpcore-arm-cpu|
|
||||
arm11mpcore_priv|arm11-scu|arm926-arm-cpu|arm946-arm-cpu|
|
||||
arm.cortex-a9-global-timer|arm_gic|arm-gicv2m|
|
||||
arm_mptimer|armv7m_nvic|aspeed.timer|aspeed.vic|ast2400|
|
||||
at25128a-nonjedec|at25256a-nonjedec|at25df041a|at25df321a|at25df641|
|
||||
at25fs010|at25fs040|at26df081a|at26df161a|at26df321|at26f004|
|
||||
at45db081d|bcm2835-aux|bcm2835-dma|bcm2835-fb|bcm2835-ic|bcm2835-mbox|
|
||||
bcm2835-peripherals|bcm2835-property|bcm2836|bcm2836-control|
|
||||
bochs-display|cadence_gem|cadence_ttc|cadence_uart|ccid-card-emulated|
|
||||
ccid-card-passthru|cfi.pflash02|cirrus-vga|cmsdk-apb-dualtimer|
|
||||
cmsdk-apb-watchdog|corgi-ssp|cortex-a15-arm-cpu|cortex-a53-arm-cpu|
|
||||
cortex-a57-arm-cpu|cortex-a72-arm-cpu|cortex-a8-arm-cpu|
|
||||
cortex-a9-arm-cpu|cortex-m0-arm-cpu|cortex-m3-arm-cpu|
|
||||
cortex-m4-arm-cpu|cortex-r5-arm-cpu|cs4231a|digic|digic-timer|
|
||||
digic-uart|ds1338|dscm1xxxx|e1000|en25f32|en25p32|en25p64|en25q32b|
|
||||
en25q64|exynos4210.combiner|exynos4210-ehci-usb|exynos4210.fimd|
|
||||
exynos4210.gic|exynos4210.i2c|exynos4210.irq_gate|exynos4210.mct|
|
||||
exynos4210.pmu|exynos4210.pwm|exynos4210.rtc|exynos4210.uart|floppy|
|
||||
fslimx25|fslimx31|fusbh200-ehci-usb|fw_cfg|gd25q32|gd25q64|
|
||||
gpex-pcihost|gpex-root|gpio_i2c|gpio-key|gus|hyperv-testdev|
|
||||
highbank-regs|host-arm-cpu|*-i386-cpu|i8042|ib700|icp-ctrl-regs|
|
||||
igd-passthrough-isa-bridge|imx25.ccm|imx31.ccm|imx6.ccm|imx.avic|
|
||||
imx.epit|imx.fec|imx.gpio|imx.gpt|imx.i2c|imx.serial|imx6ul.ccm|
|
||||
integrator_core|integrator_debug|integrator_pic|integrator_pit|
|
||||
intel_iommu|iotkit-sysctl|iotkit-sysinfo|ipmi-bmc-extern|ipmi-bmc-sim|
|
||||
isa-applesmc|isa-cirrus-vga|isa-debugcon|isa-debug-exit|isa-fdc|
|
||||
isa-ide|isa-ipmi-bt|isa-ipmi-kcs|isa-parallel|isa-vga|kvaser_pci|
|
||||
kvm-arm-gic|kvm-arm-gicv3|l2x0|lan9118|lm8323|loader|lsi53c810a|
|
||||
lsi53c895a|m25p05|m25p10|m25p128|m25p16|m25p20|m25p32|m25p40|m25p64|
|
||||
m25p80|m25pe16|m25pe20|m25pe80|m25px32|m25px32-s0|m25px32-s1|m25px64|
|
||||
m45pe10|m45pe16|m45pe80|mainstone-fpga|max1110|max1111|max7310|
|
||||
mioe3680_pci|msf2-soc|msf2-sysreg|mss-sp1|mss-timer|musicpal_gpio|
|
||||
musicpal_key|musicpal_lcd|musicpal-misc|mv88w8618_audio|mv88w8618_eth|
|
||||
mv88w8618_flashcfg|mv88w8618_pic|mv88w8618_pit|mv88w8618_wlan|
|
||||
mx25l12805d|mx25l12855e|mx25l1606e|mx25l2005a|mx25l25635e|mx25l25655e|
|
||||
mx25l3205d|mx25l4005a|mx25l6405d|mx25l8005|n25q032|n25q032a11|
|
||||
n25q032a13|n25q064|n25q064a11|n25q064a13|n25q128|n25q128a11|
|
||||
n25q128a13|n25q256a|n25q256a11|n25q256a13|n25q512a|n25q512a11|
|
||||
n25q512a13|nand|ne2k_isa|nrf51-soc|nrf51_soc.uart|nvdimm|omap2-gpio|
|
||||
omap2-intc|omap-gpio|omap_i2c|omap-intc|onenand|pc-dimm|pc-testdev|
|
||||
piix3-ide|piix3-ide|piix3-ide-xen|piix3-usb-uhci|pl011|pl011_luminary|
|
||||
pl022|pl031|pl041|pl050_keyboard|pl050_mouse|pl061|pl061_luminary|
|
||||
pl080|pl081|pl110|pl110_versatile|pl111|pl181|pl190|pl330|
|
||||
platform-bus-device|pvrdma|pxa250-arm-cpu|pxa255-arm-cpu|pxa25x-timer|
|
||||
pxa260-arm-cpu|pxa261-arm-cpu|pxa262-arm-cpu|pxa270-a0-arm-cpu|
|
||||
pxa270-a1-arm-cpu|pxa270-arm-cpu|pxa270-b0-arm-cpu|pxa270-b1-arm-cpu|
|
||||
pxa270-c0-arm-cpu|pxa270-c5-arm-cpu|pxa27x-timer|pxa2xx-dma|
|
||||
pxa2xx-fir|pxa2xx-gpio|pxa2xx_i2c|pxa2xx-i2c-slave|pxa2xx-mmci|
|
||||
pxa2xx-pcmcia|pxa2xx_pic|pxa2xx_rtc|pxa2xx-ssp|ramfb|realview_gic|
|
||||
realview_mpcore|realview_pci|realview_sysctl|s25fl016k|s25fl064k|
|
||||
s25fl129p0|s25fl129p1|s25fl256s0|s25fl256s1|s25fl512s|s25sl004a|
|
||||
s25sl008a|s25sl016a|s25sl032a|s25sl032p|s25sl064a|s25sl064p|
|
||||
s25sl12800|s25sl12801|s70fl01gs|sa1100-arm-cpu|sa1110-arm-cpu|sb16|
|
||||
scoop|sdhci-pci|sga|sii9022|sl-nand|smbus-eeprom|smc91c111|sp804|
|
||||
spitz-keyboard|spitz-lcdtg|ssd0303|ssd0323|sst25vf016b|sst25vf032b|
|
||||
sst25vf040b|sst25vf080b|sst25wf010|sst25wf020|sst25wf040| sst25wf080|
|
||||
sst25wf512|stellaris-adc|stellaris_enet|stellaris-gptm|stellaris-i2c|
|
||||
stm32f205-soc|stm32f2xx-syscfg|stm32f2xx-timer|stm32f2xx-usart|
|
||||
strongarm-gpio|strongarm_pic|strongarm-ppc|strongarm-rtc|
|
||||
strongarm-ssp|strongarm-uart|tegra2-ehci-usb|ti925t-arm-cpu|tmp105|
|
||||
tosa_dac|tosa-ssp|tusb6010|twl92230|tz-msc|usb-redir|versatile_i2c|
|
||||
versatilepb_sic|versatile_pci|versatile_pci_host|vfio-pci-nohotplug|
|
||||
vfio-platform|vhost-vsock-device|virtconsole|virtio-crypto-device|
|
||||
vmgenid|vmware-svga|w25q256|w25q32|w25q32dw|w25q64|w25q80|w25q80bl|
|
||||
w25x10|w25x16|w25x20|w25x32|w25x40|w25x64|w25x80|wm8750|*-x86_64-cpu|
|
||||
xen-backend|xen-pci-passthrough|xen-platform|xen-pvdevice|xgmac|
|
||||
xilinxzynq_slcr|xlnx-versal|xlnx.ps7-qspi|xlnx.ps7-spi|xlnxzynqmp|
|
||||
xlnxzynq-xadc|armsse-cpuid|armsse-mhu|cpu-cluster|luminary-watchdog|
|
||||
microbit.i2c|nrf51_soc.gpio|nrf51_soc.nvm|nrf51_soc.rng|
|
||||
nrf51_soc.timer|platform-ehci-usb|sse-200|vmware-svga|vmxnet3|ati-vga|
|
||||
cirrus-vga|vhost-user-fs-device|tulip|ati-vga|aw-hc-ehci-usb|
|
||||
virtio-iommu-device|virtio-iommu-pci|
|
||||
virtio-iommu-pci-non-transitional|cortex-m7-arm-cpu|allwinner-cpucfg|
|
||||
allwinner-h3|allwinner-h3-ccu|allwinner-h3-dramc|allwinner-h3-sysctrl|
|
||||
allwinner-rtc-sun4i|allwinner-rtc-sun6i|allwinner-rtc-sun7i|
|
||||
allwinner-sdhost-sun4i|allwinner-sdhost-sun5i|allwinner-sid|
|
||||
allwinner-sun8i-emac|imx.rngc|imx.usbphy|serial|serial-io|
|
||||
stm32f405-soc|stm32f4xx-exti|stm32f4xx-syscfg|nvdimm|
|
||||
vhost-user-vsock-device|vhost-user-vsock-pci|
|
||||
vhost-user-vsock-pci-non-transitional|nvme-ns|ads7846|led|ssd0323|
|
||||
vhost-user-vga|ctucan_pci|bcm2835-cprman-clock-mux|
|
||||
bcm2835-cprman-cprman-dsi0hsck-mux|bcm2835-cprman-cprman-pll|
|
||||
bcm2835-cprman-cprman-pll-channel|mt25ql512ab|mx66l5123f|n25q512ax3|
|
||||
ssd0323|at24c-eeprom|emc1413|emc1414|is25lp016d|is25lp032|is25lp064|
|
||||
is25lp080d|is25lp128|is25lp256|is25lq040b|is25wp032|is25wp064|
|
||||
is25wp128|is25wp256|npcm7xx-clock-divider|npcm7xx-clock-pll|
|
||||
npcm7xx-clock-sel]
|
||||
(the following are aliases of these unsupported devices: lsi|
|
||||
piix3-usb-uhci)
|
||||
(note that some of these device names represent supported devices and
|
||||
are used internally, but are not specifyable via -device even though
|
||||
they appear in the list of devices)
|
||||
|
||||
-drive
|
||||
|
||||
,if=[scsi|mtd|pflash], snapshot=on, format=[anything besides qcow2 or
|
||||
raw]
|
||||
|
||||
-dtb file
|
||||
-enable-sync-profile
|
||||
-fda/-fdb ...
|
||||
-g ...
|
||||
-hda/-hdb/-hdc/-hdd ...
|
||||
-icount ...
|
||||
-L ...
|
||||
-M
|
||||
|
||||
[akita|ast2500-evb|ast2600-evb|borzoi|canon-a1100|cheetah|collie|connex|
|
||||
cubieboard|emcraft-sf2|g220a-bmc|highbank|imx25-pdk|integratorcp|kzm|
|
||||
lm3s6965evb|lm3s811evb|mainstone|mcimx6ul-evk|mcimx7d-sabre|microbit|
|
||||
midway|mps2-an385|mps2-an386|mps2-an500|mps2-an505|mps2-an511|mps2-an521|
|
||||
mps3-an524|mps3-an547|musca-a|musca-b1|musicpal|n800|n810|netduino2|
|
||||
netduinoplus2|npcm750-evb|nuri|orangepi-pc|palmetto-bmc|quanta-gsj|raspi0|
|
||||
raspi1ap|raspi2|raspi2b|raspi3ap|raspi3|raspi3b|realview-eb|
|
||||
realview-eb-mpcore|realview-pb-a8|realview-pbx-a9|romulus-bmc|sabrelite|
|
||||
sbsa-ref|smdkc210|sonorapass-bmc|spitz|supermicrox11-bmc|swift-bmc|sx1|
|
||||
sx1-v1|tacoma-bmc|terrier|tosa|verdex|versatileab|versatilepb|
|
||||
vexpress-a15|vexpress-a9|virt-2.12|virt-2.7|virt-2.8|virt-3.0|virt-4.0|
|
||||
virt-4.1|virt-5.0|virt-5.1|virt-6.0|virt|virt-6.1|witherspoon-bmc|
|
||||
xilinx-zynq-a9|xlnx-versal-virt|xlnx-zcu102|z2]
|
||||
|
||||
-machine
|
||||
|
||||
[akita|ast2500-evb|ast2600-evb|borzoi|canon-a1100|cheetah|collie|
|
||||
connex|cubieboard|emcraft-sf2|g220a-bmc|highbank|imx25-pdk|
|
||||
integratorcp|kzm|lm3s6965evb|lm3s811evb|mainstone|mcimx6ul-evk|
|
||||
mcimx7d-sabre|microbit|midway|mps2-an385|mps2-an386|mps2-an500|
|
||||
mps2-an505|mps2-an511|mps2-an521|mps3-an524|mps3-an547|musca-a|
|
||||
musca-b1|musicpal|n800|n810|netduino2|netduinoplus2|npcm750-evb|
|
||||
nuri|orangepi-pc|palmetto-bmc|quanta-gsj|raspi0|raspi1ap|raspi2|
|
||||
raspi2b|raspi3ap|raspi3|raspi3b|realview-eb|realview-eb-mpcore|
|
||||
realview-pb-a8|realview-pbx-a9|romulus-bmc|sabrelite|sbsa-ref|
|
||||
smdkc210|sonorapass-bmc|spitz|supermicrox11-bmc|swift-bmc|sx1|
|
||||
sx1-v1|tacoma-bmc|terrier|tosa|verdex|versatileab|versatilepb|
|
||||
vexpress-a15|vexpress-a9|virt-2.12|virt-2.7|virt-2.8|virt-3.0|
|
||||
virt-4.0|virt-4.1|virt-5.0|virt-5.1|virt-6.0|virt|virt-6.1|
|
||||
witherspoon-bmc|xilinx-zynq-a9|xlnx-versal-virt|xlnx-zcu102|z2]
|
||||
|
||||
-mtdblock file
|
||||
-net [socket|vde] ...
|
||||
-netdev [hubport|l2tpv3|socket|vde] ...
|
||||
-no-fd-bootchk
|
||||
-no-hpet
|
||||
-no-kvm
|
||||
-no-kvm-irqchip
|
||||
-no-kvm-pit
|
||||
-no-kvm-pit-reinjection
|
||||
-numa cpu ...
|
||||
-numa dist ...
|
||||
-numa node ...
|
||||
-option-rom ...
|
||||
-overcommit ...
|
||||
-pflash file
|
||||
-portrait
|
||||
-preconfig
|
||||
-prom-env ...
|
||||
-qtest ...
|
||||
-qtest-log ...
|
||||
-rotate
|
||||
-sd file
|
||||
-sdl
|
||||
-set ...
|
||||
-singlestep
|
||||
-snapshot
|
||||
-soundhw ...
|
||||
-tpmdev emulator ...
|
||||
-vga [cg3|tcx|virtio|cirrus|xenfb]
|
||||
-win2k-hack
|
||||
-xen-attach ...
|
||||
-xen-domid ...
|
||||
-xen-domid-restrict ...
|
||||
|
||||
- The following monitor commands are unsupported:
|
||||
block_job_cancel ...
|
||||
block_job_complete ...
|
||||
block_job_pause ...
|
||||
block_job_resume ...
|
||||
block_job_set_speed ...
|
||||
commit ...
|
||||
drive_mirror ...
|
||||
exit_preconfig
|
||||
expire_password ...
|
||||
hostfwd_add ...
|
||||
hostfwd_remove ...
|
||||
nbd_server_add ...
|
||||
nbd server_start ...
|
||||
nbd_server_stop ...
|
||||
netdev_add
|
||||
netdev_del ...
|
||||
pcie_aer_inject_error ...
|
||||
replay_break ...
|
||||
replay_delete_break
|
||||
replay_seek ...
|
||||
set_link ...
|
||||
set_password ...
|
||||
singlestep ...
|
||||
snapshot_blkdev ...
|
||||
stopcapture ...
|
||||
sync-profile ...
|
||||
wavcapture ...
|
||||
x_colo_lost_heartbeat
|
||||
|
||||
- The following QMP commands are unsupported:
|
||||
block-job-cancel
|
||||
block-job-complete
|
||||
block-job-pause
|
||||
block-job-resume
|
||||
block-job-set-speed
|
||||
change-backing-file
|
||||
drive-backup
|
||||
drive-mirror
|
||||
netdev_add
|
||||
netdev_del
|
||||
nbd-server-add
|
||||
nbd-server-start
|
||||
nbd-server-stop
|
||||
query-colo-status
|
||||
replay_break
|
||||
replay_delete_break
|
||||
replay_seek
|
||||
x-blockdev-amend
|
||||
x-blockdev-change
|
||||
x-blockdev-insert-medium
|
||||
x-blockdev-remove-medium
|
||||
x-blockdev-reopen
|
||||
x-colo-lost-heartbeat
|
||||
x-debug-block-dirty-bitmap-sha256
|
||||
x-debug-query-block-graph
|
||||
x-exit-preconfig
|
||||
xen-colo-do-checkpoint
|
||||
xen-load-devices-state
|
||||
xen-save-devices-state
|
||||
xen-set-global-dirty-log
|
||||
xen-set-replication
|
@ -1,6 +0,0 @@
|
||||
[qemu-ppc package document]
|
||||
|
||||
SLES 15 SP4 QEMU/KVM RELATED SUPPORT STATEMENTS
|
||||
===============================================
|
||||
|
||||
QEMU/KVM on ppc is not supported.
|
@ -1,868 +0,0 @@
|
||||
[qemu-s390 package document]
|
||||
|
||||
SLES 15 SP4 QEMU/KVM RELATED SUPPORT STATEMENTS
|
||||
===============================================
|
||||
|
||||
Overview
|
||||
--------
|
||||
|
||||
The QEMU based packages included with SLES 15 SP4 provide a large variety of
|
||||
features, from the very latest customer requests to features of questionable
|
||||
quality or value. The linux kernel includes components which contribute KVM
|
||||
virtualization features as well. This document was created to assist the user
|
||||
in deciding which features can be relied upon to build enterprise class
|
||||
virtualization solutions. KVM based virtualization for x86 (Intel 64/AMD64),
|
||||
for IBM System z (s390x), and for the ARM64 architecture (AArch64) are offered
|
||||
at the L3 (full support) level. The bulk of this document deals with L3
|
||||
supported features and is primarily s390x centric. This document should be
|
||||
considered a companion to the standard virtualization documentation delivered
|
||||
with the product.
|
||||
|
||||
KVM is implemented in linux kernel modules which enable the linux kernel to
|
||||
function as an integral part of the KVM hypervisor. The hypervisor-guest
|
||||
interaction is managed by QEMU through the /dev/kvm ioctl interface. The linux
|
||||
host assists in the virtualization of storage, networking and display
|
||||
resources as well as allowing direct hardware passthrough of PCI devices.
|
||||
Linux memory and cpu management features are used by QEMU/KVM to enable guests
|
||||
to share those host resources as efficiently as possible.
|
||||
|
||||
QEMU is a primary component of KVM based virtualization. The legacy qemu-kvm
|
||||
program is available for continuity with pre SLES 12 usage, including in
|
||||
libvirt domain xml references. The QEMU emulator binary qemu-system-s390x is
|
||||
now the primary program to use to access KVM virtualization. When using this
|
||||
program, the -machine option accel=kvm (or its alias -enable-kvm) or --accel
|
||||
kvm option must be specified for KVM acceleration to be used by the guest.
|
||||
|
||||
Libvirt is the preferred means of accessing QEMU/KVM functionality and is
|
||||
documented elsewhere. This document focuses on the features and direct usage
|
||||
of QEMU/KVM as provided by the QEMU based packages.
|
||||
|
||||
Major QEMU/KVM Supported Features
|
||||
---------------------------------
|
||||
|
||||
- KVM virtualization is accomplished by using the QEMU program in KVM
|
||||
acceleration mode. KVM acceleration requires that both guest and host have
|
||||
the same fundamental architecture.
|
||||
|
||||
- Guest images created under previous QEMU versions are supported by machine
|
||||
version compatibilities built into more recent QEMU versions.
|
||||
|
||||
- For ease of use, the QEMU program has defaults which represent traditional
|
||||
usage patterns.
|
||||
|
||||
- Guest virtual machine characteristics are specified by a combination of
|
||||
internal defaults, options provided on the QEMU program command-line, runtime
|
||||
configurations set via the monitor interfaces and optional config files. The
|
||||
runtime control of a VM is effected either through the Human Monitor
|
||||
"Protocol" (HMP), or the JSON based programmatical QEMU Monitor Protocol (QMP)
|
||||
interface. For QMP details, see qemu-qmp-ref man page.
|
||||
Since a KVM guest runs in the context of a normal linux process, some types
|
||||
of execution controls are managed with linux tools.
|
||||
|
||||
- QEMU incorporates virtualized, s390 specific, ccw bus based firmware for
|
||||
booting s390 guests. This firmware is automatically incorporated and
|
||||
doesn't need to be explicitly referenced.
|
||||
|
||||
- Some QEMU messages have been localized to various languages. This is provided
|
||||
by the optional qemu-lang package. Keyboard mappings for various nationalities
|
||||
is also provided.
|
||||
|
||||
- Virtual machine lifecycle controls include startup through the ccw firmware or
|
||||
kernel boot, firmware based shutdown, execution pausing, the saving and
|
||||
restoring of machine state or disk state, VM migration to another host, and
|
||||
miscellaneous controls available through the "monitors" mentioned above.
|
||||
|
||||
- Guest execution state may be "moved" in both time (save/restore) and space
|
||||
(static and live migration). These migrations or save/restore operations can
|
||||
take place either from certain prior SLES versioned hosts to a SLES 15 SP4
|
||||
host or between hosts of the same version. Certain other restrictions also
|
||||
apply.
|
||||
|
||||
- Security considerations include privileged helpers and a security model which
|
||||
allows running guests as a non-root user.
|
||||
|
||||
- QEMU provides best effort reuse of existing disk images, including those with
|
||||
systems installed, through geometry probing. Also disk images produced by
|
||||
other popular virtualization technologies may be imported into QEMU supported
|
||||
storage formats. These QEMU formats include features which exploit the
|
||||
benefits of virtualization.
|
||||
|
||||
- Memory, cpu and disk space overcommit are possible and can be beneficial when
|
||||
done responsibly. Additional management of these resources comes in the form
|
||||
of memory ballooning or hotplug, host KSM, vcpu hot-add, online disk resizing,
|
||||
trim, discard and hole punching.
|
||||
|
||||
- Guest performance is enhanced through the use of virtio devices, various disk
|
||||
caching modes, network acceleration via the vhost-net kernel module, multi-
|
||||
queue network transmit capabilities, host transparent huge pages (THP) and
|
||||
direct hugetlb usage. Physical PCI devices may also be passed through to the
|
||||
guest, including SR-IOV VF's.
|
||||
|
||||
- The guest UI is accessable via GTK, VNC, and serial (including curses TUI)
|
||||
interfaces.
|
||||
|
||||
- Guest timekeeping is supported in a variety of ways, including a paravirtual
|
||||
clocksource, and options for the various guest clocks for how to handle the
|
||||
timeslicing of the guest's execution on the host.
|
||||
|
||||
- In addition to the para-virtualized devices already mentioned, other devices
|
||||
and infrastructure designed to avoid virtualization "problem areas" are
|
||||
available such as SPICE graphics, vmmouse emulation, tablet style pointer
|
||||
interfaces and virtio based UI interfaces.
|
||||
|
||||
- A built-in user-mode network (SLIRP) stack is available.
|
||||
|
||||
- Portions of the host file system may be shared with a guest by using virtFS.
|
||||
|
||||
- A guest "agent" is available for SLES 15 SP4 KVM guests via the
|
||||
qemu-guest-agent package. This allows some introspection and control of the
|
||||
guest OS environment from the host.
|
||||
|
||||
QEMU/KVM Technology Previews
|
||||
----------------------------
|
||||
|
||||
- All features indicated as not being supported in this document fall under the
|
||||
Technology Preview definition contained in the main product's release notes.
|
||||
|
||||
Noteworthy QEMU/KVM Unsupported Features
|
||||
----------------------------------------
|
||||
|
||||
- Note that some features are unsupported simply due to lack of validation. If
|
||||
an existing feature is desired, but not marked supported, let SUSE know about
|
||||
your requirements.
|
||||
|
||||
- The TCG "acceleration" mode may be helpful for problem isolation, but
|
||||
otherwise presents insufficient benefit and stability.
|
||||
|
||||
- GlusterFS integration is not enabled.
|
||||
|
||||
Deprecated, Superseded, Modified and Dropped Features
|
||||
-----------------------------------------------------
|
||||
|
||||
- https://qemu-project.gitlab.io/qemu/about/deprecated.html and
|
||||
https://qemu-project.gitlab.io/qemu/about/removed-features.html
|
||||
These websites track features deprecation and removal at the upstream
|
||||
development level. Our qemu package inherits this community direction, but be
|
||||
aware that we can and will deviate as needed. Those deviations and additional
|
||||
information can be found in this section. Feature deprecation as well as
|
||||
removed features are also tracked in the "System Emulation" section of the
|
||||
documentation installed with the qemu package.
|
||||
|
||||
- qemu-img: Deprecate use of -b without -F. Creating an image that requires
|
||||
format probing of the backing image is potentially unsafe and is now
|
||||
deprecated.
|
||||
|
||||
- The previously non-persistent backing file with pmem=on is deprecated. Modify
|
||||
VM configuration to set pmem=off to continue using fake NVDIMM with backing
|
||||
file or move backing file to NVDIMM storage and keep pmem=on.
|
||||
|
||||
- The use of "?" as a parameter to "-cpu", "-soundhw", "-device", "-M",
|
||||
"-machine" and "-d" is now considered deprecated. Use "help"
|
||||
instead.
|
||||
|
||||
- The use of "if=scsi" as a parameter to "-drive" does not work anymore with PC
|
||||
machine types, as it created an obsolete SCSI controller model.
|
||||
|
||||
- Use of aio=native without direct cache mode also being specified (cache=none,
|
||||
cache=directsync, or cache.direct=on) is no longer allowed.
|
||||
|
||||
- The use of image encryption in qcow and qcow2 formats is now considered
|
||||
deprecated.
|
||||
Analysis has shown it to be weak encryption, in addition to suffering from
|
||||
poor design. Images can easily be converted to a non-encrypted format.
|
||||
|
||||
- Use of acpi, boot-opts, and smp-opts in a -readconfig config file are now
|
||||
considered deprecated. In the future those names will be standardized to
|
||||
acpitable, boot, and smp respectively.
|
||||
|
||||
- These previously supported command line options are now considered deprecated:
|
||||
-display sdl,window_close= (use -display sdl,window-close)
|
||||
-no-quit (use -display ...,window-close=off)
|
||||
-chardev tty (use serial name instead)
|
||||
-chardev paraport (use parallel name instead)
|
||||
-device virtio-blk,scsi= (use virtio-scsi instead)
|
||||
-device virtio-blk-pci,scsi= (use virtio-scsi instead)
|
||||
-enable-fips (not really helpful - see https://git.qemu.org/?p=qemu.git;a=commit;h=166310299a1e7824bbff17e1f016659d18b4a559 for details)
|
||||
-realtime mlock= (use -overcommit mem-lock= instead)
|
||||
-spice password=string (use password-string option instead)
|
||||
-writeconfig (no replacement - never really worked right)
|
||||
-share and noshare must be replaced by share=on/share=off
|
||||
-nodelay must be replaced by nodelay=on rather than delay=off
|
||||
-object-add options opened=on and loaded=on (both had no effect)
|
||||
|
||||
- These previously supported command line options are no longer supported:
|
||||
<previously mentioned items have been moved to another category>
|
||||
|
||||
- These previously supported command line options are no longer recognized:
|
||||
-balloon (use -device virtio-balloon instead)
|
||||
-clock
|
||||
-device ivshmem (use ivshmem-doorbell or ivshmem-plain instead)
|
||||
-device pc-sysfw (no longer needed)
|
||||
-device pci-assign, -device kvm-pci-assign (use -device vfio-pci instead)
|
||||
-display sdl
|
||||
-no-frame
|
||||
-nodefconfig (use -no-user-config instead)
|
||||
-realtime ...
|
||||
-sdl
|
||||
-show-cursor
|
||||
-virtioconsole (use -device virtconsole instead)
|
||||
|
||||
- Specifying a cpu feature with both "+feature/-feature" and "feature=on/off"
|
||||
will now cause a warning. The current behavior for this combination where
|
||||
"+feature/-feature" wins over "feature=on/off", will be changed going forward
|
||||
so that "+feature" and "-feature" will be synonyms for "feature=on" and
|
||||
"feature=off" respectively.
|
||||
|
||||
- The previously supported blkdev-add QMP command has been flagged as lacking
|
||||
and could possibly change syntax in the future.
|
||||
|
||||
- These previously unsupported command line options are now deprecated:
|
||||
-bt
|
||||
-soundhw (use -device ... instead)
|
||||
|
||||
- These previously unsupported command line options are no longer recognized:
|
||||
-device ide-drive (use ide-hd or ide-cd)
|
||||
-device mmio_interface
|
||||
-device ramfb
|
||||
-device scsi-disk (use scsi-hd or scsi-cd)
|
||||
-device vhost-user-vsock-pci-transitional
|
||||
-device vhost-vsock-pci-transitional
|
||||
-device virtio-iommu-pci-transitional
|
||||
-enable-hax
|
||||
-tb-size
|
||||
-tdf
|
||||
-xen-create
|
||||
|
||||
- These previously supported QMP commands are now deprecated:
|
||||
<previously mentioned items have been moved to another category>
|
||||
|
||||
- These previously supported QMP commands are no longer recognized:
|
||||
info cpustats
|
||||
block_passwd
|
||||
change (use blockdev-change-medium or change-vnc-password instead)
|
||||
cpu-add (use device_add instead)
|
||||
migrate-set-cache-size (use migrate-set-parameters instead)
|
||||
migrate_set_downtime (use migrate-set-parameters instead)
|
||||
migrate_set_speed (use migrate-set-parameters instead)
|
||||
query-cpus (use query-cpus-fast instead)
|
||||
query-events
|
||||
query-migrate-cache-size (use query-migrate-parameters instead)
|
||||
|
||||
- These previously supported monitor commands are now deprecated:
|
||||
change
|
||||
|
||||
- These previously supported monitor commands are no longer recognized:
|
||||
info cpustats
|
||||
block_passwd ...
|
||||
cpu-add (use device_add instead)
|
||||
migrate_set_cache_size
|
||||
migrate_set_downtime
|
||||
migrate_set_speed
|
||||
pci_add (use device_add instead)
|
||||
pci_del (use device_del instead)
|
||||
|
||||
- These previously unsupported monitor command are now deprecated:
|
||||
<previously mentioned items have been moved to another category>
|
||||
|
||||
- These previously unsupported monitor commands are no longer recognized:
|
||||
acl_add ...
|
||||
acl_policy ...
|
||||
acl_remove ...
|
||||
acl_reset ...
|
||||
acl_show ...
|
||||
host_net_add
|
||||
host_net_remove
|
||||
usb_add
|
||||
usb_del
|
||||
|
||||
- These previously unsupported QMP commands are now supported under a new name:
|
||||
x-block-dirty-bitmap-disable (use block-dirty-bitmap-disable instead)
|
||||
x-block-dirty-bitmap-enable (use block-dirty-bitmap-enable instead)
|
||||
x-block-dirty-bitmap-merge (use block-dirty-bitmap-merge instead)
|
||||
x-block-latency-histogram-set (use block-latency-histogram-set instead)
|
||||
x-blockdev-create (use blockdev-create instead)
|
||||
|
||||
- This previously unsupported QMP commands is no longer recognized:
|
||||
x-nbd-server-add-bitmap
|
||||
|
||||
- Due to upstream's decision to no longer fully support the qed storage format
|
||||
going forward (since it really provides no benefit over qcow2 and is now no
|
||||
longer actively maintained upstream), creating qed storage images is no longer
|
||||
supported and it is highly discouraged to continue using existing qed images.
|
||||
They should instead be converted to another supported format.
|
||||
|
||||
QEMU Command-Line and Monitor Syntax and Support
|
||||
------------------------------------------------
|
||||
|
||||
- The QEMU program command-line syntax is as follows:
|
||||
qemu-system-s390x [options]
|
||||
|
||||
Where 'options' are taken from the options listed below.
|
||||
The images used with -drive or -cdrom, may be in the raw (no format) or qcow2
|
||||
storage formats, and may be located in files within the host filesystem,
|
||||
logical volumes, host physical disks, or network based storage. Read only
|
||||
media may also be accessed via URL style protocol specifiers.
|
||||
|
||||
Note that as a general rule, as new command line options are added which serve
|
||||
to replace an older option or interface, you are strongly encouraged to adapt
|
||||
your usage to the new option. The new option is being introduced to provide
|
||||
better functionality and usability going forward. In some cases existing
|
||||
problems or even bugs in older interfaces cannot be fixed due to functional
|
||||
expectations, but are resolved in the newer interface or option.
|
||||
This advice includes moving to the most recent machine type (eg
|
||||
s390-ccw-virtio-6.1 instead of s390-ccw-virtio-6.0) if possible.
|
||||
|
||||
- The following command line options are supported:
|
||||
-accel ...
|
||||
-action ...
|
||||
-add-fd ...
|
||||
-alt-grab
|
||||
-append ...
|
||||
-audio-help
|
||||
-audiodev
|
||||
-bios ...
|
||||
-blockdev ...
|
||||
-boot ...
|
||||
-cdrom ...
|
||||
-chardev ...
|
||||
-compat ...
|
||||
-cpu host
|
||||
-ctrl-grab
|
||||
-d ...
|
||||
-daemonize
|
||||
-debugcon ...
|
||||
-device
|
||||
|
||||
[virtio-net-pci|virtio-blk-pci|virtio-balloon-pci|virtserialport|
|
||||
virtconsole|virtio-serial-pci|virtio-scsi-pci|scsi-cd|scsi-hd|
|
||||
scsi-generic|scsi-block|virtio-rng-pci|pci-bridge|megasas-gen2|e1000e|
|
||||
e1000|zpci|virtio-gpu-ccw|virtio-keyboard-ccw|vhost-user-blk-pci|
|
||||
vhost-user-scsi|vhost-user-scsi-pci|vhost-vsock-ccw|
|
||||
virtio-balloon-ccw|virtio-blk-ccw|vhost-scsi-ccw|vhost-user-blk|
|
||||
virtio-crypto-ccw|virtio-net-ccw|virtio-rng-ccw|virtio-scsi-ccw|
|
||||
virtio-serial-ccw|virtio-mouse-ccw|virtio-tablet-ccw|vfio-pci|
|
||||
virtio-vga|vhost-scsi-pci-non-transitional|
|
||||
vhost-scsi-pci-transitional|vhost-user-blk-pci-non-transitional|
|
||||
vhost-user-blk-pci-transitional|vhost-user-scsi-pci-non-transitional|
|
||||
vhost-user-scsi-pci-transitional|vhost-vsock-pci-non-transitional|
|
||||
virtio-9p-ccw|virtio-9p-pci-non-transitional|
|
||||
virtio-9p-pci-transitional|virtio-balloon-pci-non-transitional|
|
||||
virtio-balloon-pci-transitional|virtio-blk-pci-non-transitional|
|
||||
virtio-blk-pci-transitional|virtio-input-host-pci-non-transitional|
|
||||
virtio-input-host-pci-transitional|virtio-net-pci-non-transitional|
|
||||
virtio-net-pci-transitional|virtio-rng-pci-non-transitional|
|
||||
virtio-rng-pci-transitional|virtio-scsi-pci-non-transitional|
|
||||
virtio-scsi-pci-transitional|virtio-serial-pci-non-transitional|
|
||||
virtio-serial-pci-transitional|vhost-user-fs-pci|vhost-user-gpu|
|
||||
vhost-user-pci-pci|vhost-user-input|vhost-user-input-pci|
|
||||
vhost-user-vga]
|
||||
(the following are aliases of these supported devices: virtio-blk|
|
||||
virtio-input-host|virtio-keyboard|virtio-mouse|virtio-tablet|
|
||||
virtio-gpu|virtio-9p|virtio-net|virtio-serial|virtio-balloon|
|
||||
virtio-scsi|virtio-rng)
|
||||
|
||||
-dfilter range, ...
|
||||
-display ...
|
||||
-drive
|
||||
|
||||
... (if specified if=[virtio] and format=[qcow2|raw] and
|
||||
snapshot=off only)
|
||||
|
||||
-echr ...
|
||||
-enable-fips
|
||||
-enable-kvm
|
||||
-fsdev ...
|
||||
-full-screen
|
||||
-fw_cfg ...
|
||||
-gdb ...
|
||||
-global ...
|
||||
-h
|
||||
-help
|
||||
-incoming ...
|
||||
-initrd ...
|
||||
-iscsi ...
|
||||
-k ...
|
||||
-kernel ...
|
||||
-loadvm ...
|
||||
-m ...
|
||||
-M
|
||||
|
||||
[help|?|none|s390-ccw-virtio-2.6|s390-ccw-virtio-2.9|s390-ccw-virtio-2.11|
|
||||
s390-ccw-virtio-3.1|s390-ccw-virtio-4.2|s390-ccw-virtio-5.2]
|
||||
|
||||
-machine
|
||||
|
||||
[help|?|none|s390-ccw-virtio-2.6|s390-ccw-virtio-2.9|
|
||||
s390-ccw-virtio-2.11|s390-ccw-virtio-3.1|s390-ccw-virtio-4.2|
|
||||
s390-ccw-virtio-5.2]
|
||||
|
||||
-mem-path ...
|
||||
-mem-prealloc
|
||||
-mon ...
|
||||
-monitor ...
|
||||
-msg ...
|
||||
-name ...
|
||||
-net
|
||||
|
||||
[bridge|l2tpv3|nic|none|tap|user] ... (for model= only e1000, rtl8139,
|
||||
and virtio are supported)
|
||||
|
||||
-netdev [bridge|tap|user] ...
|
||||
-nic ...
|
||||
-nodefaults
|
||||
-nographic
|
||||
-no-quit
|
||||
-no-reboot
|
||||
-no-shutdown
|
||||
-no-user-config
|
||||
-object ...
|
||||
-only-migratable
|
||||
-parallel ...
|
||||
-pidfile ...
|
||||
-plugin ...
|
||||
-qmp ...
|
||||
-qmp-pretty ...
|
||||
-readconfig ...
|
||||
-rtc ...
|
||||
-runas ...
|
||||
-s
|
||||
-S
|
||||
-sandbox ...
|
||||
-seed ...
|
||||
-serial ...
|
||||
-smp ...
|
||||
-trace ...
|
||||
-uuid ...
|
||||
-version
|
||||
-vga [none|qxl|std]
|
||||
-virtfs ...
|
||||
-vnc ...
|
||||
-watchdog ...
|
||||
-watchdog-action ...
|
||||
-writeconfig ...
|
||||
|
||||
- The following monitor commands are supported:
|
||||
?
|
||||
announce_self ...
|
||||
balloon ...
|
||||
block_resize ...
|
||||
boot_set ...
|
||||
c
|
||||
change ...
|
||||
chardev-add ...
|
||||
chardev-change ...
|
||||
chardev-remove ...
|
||||
chardev-send-break ...
|
||||
client_migrate_info ...
|
||||
closefd ...
|
||||
cont
|
||||
cpu ...
|
||||
delvm ...
|
||||
device_add ...
|
||||
device_del ...
|
||||
drive_add ...
|
||||
drive_backup ...
|
||||
drive_del ...
|
||||
dump_guest_memory ...
|
||||
eject ...
|
||||
gdbserver ...
|
||||
gpa2hpa ...
|
||||
gpa2hva ...
|
||||
gva2gpa ...
|
||||
help
|
||||
i ...
|
||||
info ...
|
||||
loadvm ...
|
||||
logfile ...
|
||||
logitem ...
|
||||
mce ...
|
||||
memsave ...
|
||||
migrate ...
|
||||
migrate_cancel
|
||||
migrate_continue ...
|
||||
migrate_incoming
|
||||
migrate_pause
|
||||
migrate_recover ...
|
||||
migrate_set_capability ...
|
||||
migrate_set_parameter ...
|
||||
migrate_start_post_copy
|
||||
mouse_button ...
|
||||
mouse_move ...
|
||||
mouse_set ...
|
||||
nmi ...
|
||||
o ...
|
||||
object_add ...
|
||||
object_del ...
|
||||
p ...
|
||||
pmemsave ...
|
||||
print ...
|
||||
q
|
||||
qemu-io ...
|
||||
qom-list
|
||||
qom-set
|
||||
ringbuf_read ...
|
||||
ringbuf_write ...
|
||||
savevm ...
|
||||
screendump ...
|
||||
sendkey ...
|
||||
snapshot_blkdev_internal ...
|
||||
snapshot_delete_blkdev_internal ...
|
||||
stop
|
||||
sum ...
|
||||
system_powerdown
|
||||
system_reset
|
||||
system_wakeup
|
||||
trace-event ...
|
||||
watchdog_action ...
|
||||
x ...
|
||||
xp ...
|
||||
|
||||
- The following QMP commands are supported:
|
||||
add_client
|
||||
add-fd
|
||||
announce-self
|
||||
balloon
|
||||
blockdev-add
|
||||
blockdev-backup
|
||||
blockdev-change-medium
|
||||
blockdev-close-tray
|
||||
blockdev-create
|
||||
blockdev-del
|
||||
blockdev-mirror
|
||||
blockdev-open-tray
|
||||
blockdev-snapshot
|
||||
blockdev-snapshot-delete-internal-sync
|
||||
blockdev-snapshot-internal-sync
|
||||
blockdev-snapshot-sync
|
||||
block-commit
|
||||
block-dirty-bitmap-add
|
||||
block-dirty-bitmap-clear
|
||||
block-dirty-bitmap-disable
|
||||
block-dirty-bitmap-enable
|
||||
block-dirty-bitmap-merge
|
||||
block-dirty-bitmap-remove
|
||||
block-export-add
|
||||
block-export-del
|
||||
block-latency-histogram-set
|
||||
block_resize
|
||||
block_set_io_throttle
|
||||
block-set-write-threshold
|
||||
block_stream
|
||||
calc-dirty-rate
|
||||
change-vnc-password
|
||||
chardev-add
|
||||
chardev-change
|
||||
chardev-remove
|
||||
chardev-send-break
|
||||
client_migrate_info
|
||||
closefd
|
||||
cont
|
||||
cpu
|
||||
device_add
|
||||
device_del
|
||||
device-list-properties
|
||||
display-reload
|
||||
dump-guest-memory
|
||||
eject
|
||||
expire_password
|
||||
getfd
|
||||
human-monitor-command
|
||||
inject-nmi
|
||||
input-send-event
|
||||
job-cancel
|
||||
job-complete
|
||||
job-dismiss
|
||||
job-finalize
|
||||
job-pause
|
||||
job-resume
|
||||
memsave
|
||||
migrate
|
||||
migrate_cancel
|
||||
migrate-continue
|
||||
migrate-incoming
|
||||
migrate-pause
|
||||
migrate-resume
|
||||
migrate-set-capabilities
|
||||
migrate-set-parameters
|
||||
migrate-start-postcopy
|
||||
object-add
|
||||
object-del
|
||||
pmemsave
|
||||
qmp_capabilities
|
||||
qom-get
|
||||
qom-list
|
||||
qom-list-types
|
||||
qom-set
|
||||
query-acpi-ospm-status
|
||||
query-balloon
|
||||
query-block
|
||||
query-block-exports
|
||||
query-block-jobs
|
||||
query-blockstats
|
||||
query-chardev
|
||||
query-chardev-backends
|
||||
query-command-line-options
|
||||
query-commands
|
||||
query-cpu-definitions
|
||||
query-cpu-model-baseline
|
||||
query-cpu-model-comparison
|
||||
query-cpu-model-expansion
|
||||
query-cpus-fast
|
||||
query-current-machine
|
||||
query-dirty-rate
|
||||
query-display-options
|
||||
query-dump
|
||||
query-dump-guest-memory-capability
|
||||
query-fdsets
|
||||
query-gic-capabilities
|
||||
query-hotpluggable-cpus
|
||||
query-iothreads
|
||||
query-jobs
|
||||
query-kvm
|
||||
query-machines
|
||||
query-memdev
|
||||
query-memory-devices
|
||||
query-memory-size-summary
|
||||
query-mice
|
||||
query-migrate
|
||||
query-migrate-capabilities
|
||||
query-migrate-parameters
|
||||
query-name
|
||||
query-named-block-nodes
|
||||
query-pci
|
||||
query-pr-managers
|
||||
query-qmp-schema
|
||||
query-rocker
|
||||
query-rocker-of-dpa-flows
|
||||
query-rocker-of-dpa-groups
|
||||
query-rocker-ports
|
||||
query-rx-filter
|
||||
query-spice
|
||||
query-status
|
||||
query-target
|
||||
query-uuid
|
||||
query-version
|
||||
query-vnc
|
||||
query-vnc-servers
|
||||
query-yank
|
||||
query-xen-replication-status
|
||||
quit
|
||||
remove-fd
|
||||
ringbuf-read
|
||||
ringbuf-write
|
||||
screendump
|
||||
send-key
|
||||
set-action
|
||||
set_link
|
||||
set_password
|
||||
snapshot-delete
|
||||
snapshot-load
|
||||
snapshot-save
|
||||
stop
|
||||
system_powerdown
|
||||
system_reset
|
||||
system_wakeup
|
||||
trace-event-get-state
|
||||
trace-event-set-state
|
||||
transaction
|
||||
watchdog-set-action
|
||||
yank
|
||||
|
||||
- The following command line options are unsupported:
|
||||
|
||||
-acpitable ...
|
||||
-chroot ...
|
||||
-cpu ... (all except host)
|
||||
-curses
|
||||
-device
|
||||
|
||||
[AC97|adlib|am53c974|amd-iommu|AMDVI-PCI|ccid-card-emulated|
|
||||
ccid-card-passthrough|cirrus-vga|cs4231a|dc390|diag288|e1000-82544gc|
|
||||
e1000-82545em|edu|ES1370|floppy|generic-sdhci|gus|hda-duplex|
|
||||
hda-micro|hda-output|hyperv-testdev|*-i386-cpu|i8042|i82550|i82551|
|
||||
i82557a|i82557b|i82557c|i82558a|i82558b|i82559a|i82559b|i82559c|
|
||||
i82562|i82801|i82801b11-bridge|ib700|ich9-intel-hda|ich9-usb-ehci1|
|
||||
ich9-usb-ehci2|ich9-usb-uhci1|ich9-usb-uhci2|ich9-usb-uhci3|
|
||||
ich9-usb-uhci4|ich9-usb-uhci5|ich9-usb-uhci6|ide-cd|ide-drive|ide-hd|
|
||||
igd-passthrough-isa-bridge|intel-hda|intel_iommu|ioh3420|
|
||||
ipmi-bmc-extern|ipmi-bmc-sim|ipoctal232|isa-applesmc|isa-cirrus-vga|
|
||||
isa-debugcon|isa-debug-exit|isa-fdc|isa-ide|isa-ipmi-bt|isa-ipmi-kcs|
|
||||
isa-parallel|isa-serial|isa-vga|lsi53c810|lsi53c810a|max-s390x-cpu|
|
||||
megasas|mptsas1068|ne2k_isa|ne2k_pci|nec-usb-xhci|nvdimm|nvme|pc-dimm|
|
||||
pci-testdev|pcnet|pc-testdev|piix3-ide|piix3-ide|piix3-ide-xen|
|
||||
piix4-usb-uhci|pvscsi|pxb|pxb-host|pxb-pcie|qemu-s390-cpu|rocker|
|
||||
s390-flic|s390-flic-qemu|s390-ipl|s390-pcihost|
|
||||
s390-sclp-event-facility|s390-skeys-qemu|sb16|sclp|sclpconsole|
|
||||
sclp-cpu-hotplug|sclplmconsole|sclp-memory-hotplug-dev|sclpquiesce|
|
||||
sd-card|sdhci-pci|secondary-vga|sga|smbus-eeprom|tpci200|usb-audio|
|
||||
usb-bot|usb-ccid|usb-mtp|usb-uas|vfio-ap|vfio-pci-nohotplug|
|
||||
virtio-9p-device|virtual-css-bridge|vmcoreinfo|vmgenid|vmware-svga|
|
||||
vmxnet3|vt82c686b-usb-uhci|x3130-upstream|*-x86_64-cpu|xen-backend|
|
||||
xen-pci-passthrough|xen-platform|xen-pvdevice|xio3130-downstream|
|
||||
z10BC.2-base-s390x-cpu|z10BC.2-s390x-cpu|z10BC-base-s390x-cpu|
|
||||
z10BC-s390x-cpu|z10EC.2-base-s390x-cpu|z10EC.2-s390x-cpu|
|
||||
z10EC.3-base-s390x-cpu|z10EC.3-s390x-cpu|z10EC-base-s390x-cpu|
|
||||
z10EC-s390x-cpu|z114-base-s390x-cpu|z114-s390x-cpu|
|
||||
z13.2-base-s390x-cpu|z13.2-s390x-cpu|z13-base-s390x-cpu|z13-s390x-cpu|
|
||||
z13s-base-s390x-cpu|z13s-s390x-cpu|z196.2-base-s390x-cpu|
|
||||
z196.2-s390x-cpu|z196-base-s390x-cpu|z196-s390x-cpu|
|
||||
z800-base-s390x-cpu|z800-s390x-cpu|z890.2-base-s390x-cpu|
|
||||
z890.2-s390x-cpu|z890.3-base-s390x-cpu|z890.3-s390x-cpu|
|
||||
z890-base-s390x-cpu|z890-s390x-cpu|z900.2-base-s390x-cpu|
|
||||
z900.2-s390x-cpu|z900.3-base-s390x-cpu|z900.3-s390x-cpu|
|
||||
z900-base-s390x-cpu|z900-s390x-cpu|z990.2-base-s390x-cpu|
|
||||
z990.2-s390x-cpu|z990.3-base-s390x-cpu|z990.3-s390x-cpu|
|
||||
z990.4-base-s390x-cpu|z990.4-s390x-cpu|z990.5-base-s390x-cpu|
|
||||
z990.5-s390x-cpu|z990-base-s390x-cpu|z990-s390x-cpu|
|
||||
z9BC.2-base-s390x-cpu|z9BC.2-s390x-cpu|z9BC-base-s390x-cpu|
|
||||
z9BC-s390x-cpu|z9EC.2-base-s390x-cpu|z9EC.2-s390x-cpu|
|
||||
z9EC.3-base-s390x-cpu|z9EC.3-s390x-cpu|z9EC-base-s390x-cpu|
|
||||
z9EC-s390x-cpu|z14ZR1-base-s390x-cpu|z14ZR1-s390x-cpu|
|
||||
zBC12-base-s390x-cpu|zBC12-s390x-cpu|zEC12.2-base-s390x-cpu|
|
||||
zEC12.2-s390x-cpu|zEC12-base-s390x-cpu|zEC12-s390x-cpu|cpu-cluster|
|
||||
z14.2-base-s390x-cpu|z14.2-s390x-cpu|vhost-user-fs-device|
|
||||
virtio-iommu-device|virtio-iommu-pci|
|
||||
virtio-iommu-pci-non-transitional|vhost-user-vsock-device|
|
||||
vhost-user-vsock-pci|vhost-user-vsock-pci-non-transitional|
|
||||
vhost-user-fs-ccw|guest-loader]
|
||||
(the following are aliases of these unsupported devices: lsi|
|
||||
ahci|e1000-82540em|vfio-ccw)
|
||||
(note that some of these device names represent supported devices and
|
||||
are used internally, but are not specifyable via -device even though
|
||||
they appear in the list of devices)
|
||||
|
||||
-drive
|
||||
|
||||
,if=[scsi|mtd|pflash], snapshot=on, format=[anything besides qcow2 or
|
||||
raw]
|
||||
|
||||
-dtb file
|
||||
-enable-sync-profile
|
||||
-fda/-fdb ...
|
||||
-g ...
|
||||
-hda/-hdb/-hdc/-hdd ...
|
||||
-icount ...
|
||||
-L ...
|
||||
-M
|
||||
|
||||
[s390-ccw-virtio|s390-ccw-virtio-2.4|s390-ccw-virtio-2.5|
|
||||
s390-ccw-virtio-2.7|s390-ccw-virtio-2.8|s390-ccw-virtio-2.10|
|
||||
s390-ccw-virtio-2.12|s390-ccw-virtio-3.0|s390-ccw-virtio-4.0|
|
||||
s390-ccw-virtio-4.1|s390-ccw-virtio-5.0|s390-ccw-virtio-5.1|
|
||||
s390-ccw-virtio-6.0|s390-ccw-virtio-6.1]
|
||||
|
||||
-machine
|
||||
|
||||
[s390-ccw-virtio|s390-ccw-virtio-2.4|s390-ccw-virtio-2.5|
|
||||
s390-ccw-virtio-2.7|s390-ccw-virtio-2.8|s390-ccw-virtio-2.10|
|
||||
s390-ccw-virtio-2.12|s390-ccw-virtio-3.0|s390-ccw-virtio-4.0|
|
||||
s390-ccw-virtio-4.1|s390-ccw-virtio-5.0|s390-ccw-virtio-5.1|
|
||||
s390-ccw-virtio-6.0|s390-ccw-virtio-6.1]
|
||||
|
||||
-mtdblock file
|
||||
-net [socket|vde] ...
|
||||
-netdev [hubport|l2tpv3|socket|vde] ...
|
||||
-no-acpi
|
||||
-no-fd-bootchk
|
||||
-no-hpet
|
||||
-no-kvm
|
||||
-no-kvm-irqchip
|
||||
-no-kvm-pit
|
||||
-no-kvm-pit-reinjection
|
||||
-numa cpu ...
|
||||
-numa dist ...
|
||||
-numa node ...
|
||||
-option-rom ...
|
||||
-overcommit ...
|
||||
-pflash file
|
||||
-portrait
|
||||
-preconfig
|
||||
-prom-env ...
|
||||
-qtest ...
|
||||
-qtest-log ...
|
||||
-rotate
|
||||
-sd file
|
||||
-sdl
|
||||
-set ...
|
||||
-singlestep
|
||||
-smbios ...
|
||||
-snapshot
|
||||
-soundhw ...
|
||||
-spice
|
||||
-tdf
|
||||
-tpmdev emulator ...
|
||||
-tpmdev passthrough ...
|
||||
-usb
|
||||
-usbdevice [braile|disk|host|mouse|net|serial|tablet]
|
||||
-vga [cg3|tcx|virtio|cirrus|xenfb|vmware]
|
||||
-win2k-hack
|
||||
-xen-attach ...
|
||||
-xen-domid ...
|
||||
-xen-domid-restrict ...
|
||||
|
||||
- The following monitor commands are unsupported:
|
||||
block_job_cancel ...
|
||||
block_job_complete ...
|
||||
block_job_pause ...
|
||||
block_job_resume ...
|
||||
block_job_set_speed ...
|
||||
commit ...
|
||||
drive_mirror ...
|
||||
exit_preconfig
|
||||
expire_password ...
|
||||
hostfwd_add ...
|
||||
hostfwd_remove ...
|
||||
nbd_server_add ...
|
||||
nbd server_start ...
|
||||
nbd_server_stop ...
|
||||
netdev_add
|
||||
netdev_del ...
|
||||
pcie_aer_inject_error ...
|
||||
replay_break ...
|
||||
replay_delete_break
|
||||
replay_seek ...
|
||||
set_link ...
|
||||
set_password ...
|
||||
singlestep ...
|
||||
snapshot_blkdev ...
|
||||
stopcapture ...
|
||||
sync-profile ...
|
||||
wavcapture ...
|
||||
x_colo_lost_heartbeat
|
||||
|
||||
- The following QMP commands are unsupported:
|
||||
block-job-cancel
|
||||
block-job-complete
|
||||
block-job-pause
|
||||
block-job-resume
|
||||
block-job-set-speed
|
||||
change-backing-file
|
||||
drive-backup
|
||||
drive-mirror
|
||||
dump-skeys
|
||||
netdev_add
|
||||
netdev_del
|
||||
nbd-server-add
|
||||
nbd-server-start
|
||||
nbd-server-stop
|
||||
query-colo-status
|
||||
query-tpm
|
||||
query-tpm-models
|
||||
query-tpm-types
|
||||
replay_break
|
||||
replay_delete_break
|
||||
replay_seek
|
||||
x-blockdev-amend
|
||||
x-blockdev-change
|
||||
x-blockdev-insert-medium
|
||||
x-blockdev-remove-medium
|
||||
x-blockdev-reopen
|
||||
x-colo-lost-heartbeat
|
||||
x-debug-block-dirty-bitmap-sha256
|
||||
x-debug-query-block-graph
|
||||
x-exit-preconfig
|
||||
xen-colo-do-checkpoint
|
||||
xen-load-devices-state
|
||||
xen-save-devices-state
|
||||
xen-set-global-dirty-log
|
||||
xen-set-replication
|
@ -1,963 +0,0 @@
|
||||
[qemu-x86 package document]
|
||||
|
||||
SLES 15 SP4 QEMU/KVM RELATED SUPPORT STATEMENTS
|
||||
===============================================
|
||||
|
||||
Overview
|
||||
--------
|
||||
|
||||
The QEMU based packages included with SLES 15 SP4 provide a large variety of
|
||||
features, from the very latest customer requests to features of questionable
|
||||
quality or value. The linux kernel includes components which contribute KVM
|
||||
virtualization features as well. This document was created to assist the user
|
||||
in deciding which features can be relied upon to build enterprise class
|
||||
virtualization solutions. KVM based virtualization for x86 (Intel 64/AMD64),
|
||||
for IBM System z (s390x), and for the ARM64 architecture (AArch64) are offered
|
||||
at the L3 (full support) level. The bulk of this document deals with L3
|
||||
supported features and is primarily x86 centric. This document should be
|
||||
considered a companion to the standard virtualization documentation delivered
|
||||
with the product.
|
||||
|
||||
KVM is implemented in linux kernel modules which enable the linux kernel to
|
||||
function as an integral part of the KVM hypervisor. The hypervisor-guest
|
||||
interaction is managed by QEMU through the /dev/kvm ioctl interface. The linux
|
||||
host assists in the virtualization of storage, networking and display
|
||||
resources as well as allowing direct hardware passthrough of PCI and USB
|
||||
devices. Linux memory and cpu management features are used by QEMU/KVM to
|
||||
enable guests to share those host resources as efficiently as possible.
|
||||
|
||||
QEMU is a primary component of KVM based virtualization. The legacy qemu-kvm
|
||||
program is available for continuity with pre SLES 12 usage, including in
|
||||
libvirt domain xml references. The QEMU emulator binaries qemu-system-x86_64
|
||||
and qemu-system-i386 (x86 host) are now the primary programs to use to access
|
||||
KVM virtualization. When using these programs, the -machine option accel=kvm
|
||||
(or its alias -enable-kvm), or --accel kvm option must be specified for KVM
|
||||
acceleration to be used by the guest. Although Xen uses QEMU for
|
||||
virtualization as well, this document does not identify Xen supported
|
||||
features.
|
||||
|
||||
Libvirt is the preferred means of accessing QEMU/KVM functionality and is
|
||||
documented elsewhere. This document focuses on the features and direct usage
|
||||
of QEMU/KVM as provided by the QEMU based packages.
|
||||
|
||||
Major QEMU/KVM Supported Features
|
||||
---------------------------------
|
||||
|
||||
- KVM virtualization is accomplished by using the QEMU program in KVM
|
||||
acceleration mode. KVM acceleration requires that both guest and host have
|
||||
the same fundamental architecture.
|
||||
|
||||
- Guest images created under previous QEMU versions are supported by machine
|
||||
version compatibilities built into more recent QEMU versions.
|
||||
|
||||
- For ease of use, the QEMU program has defaults which represent traditional
|
||||
usage patterns.
|
||||
|
||||
- Guest virtual machine characteristics are specified by a combination of
|
||||
internal defaults, options provided on the QEMU program command-line, runtime
|
||||
configurations set via the monitor interfaces and optional config files. The
|
||||
runtime control of a VM is effected either through the Human Monitor
|
||||
"Protocol" (HMP), or the JSON based programmatical QEMU Monitor Protocol (QMP)
|
||||
interface. For QMP details, see qemu-qmp-ref man page.
|
||||
Since a KVM guest runs in the context of a normal linux process, some types
|
||||
of execution controls are managed with linux tools.
|
||||
|
||||
- Various standard vCPU types are available, along with the ability to specify
|
||||
individual CPU features visible to the guest.
|
||||
|
||||
- QEMU incorporates a SEABIOS based system BIOS and iPXE based PXE ROMs, which
|
||||
allow boot options common to physical systems, along with other features
|
||||
tailored to virtualization. Various VGABIOS ROMs, also from the SEABIOS
|
||||
project, are also included. A UEFI based guest boot environment is also
|
||||
available by using the firmware provided by the qemu-ovmf-x86_64 package.
|
||||
|
||||
- Some QEMU messages have been localized to various languages. This is provided
|
||||
by the optional qemu-lang package. Keyboard mappings for various nationalities
|
||||
is also provided.
|
||||
|
||||
- Virtual machine lifecycle controls include startup through the system BIOS or
|
||||
kernel boot, ACPI or legacy based shutdown, execution pausing, the saving and
|
||||
restoring of machine state or disk state, VM migration to another host, and
|
||||
miscellaneous controls available through the "monitors" mentioned above.
|
||||
|
||||
- Guest execution state may be "moved" in both time (save/restore) and space
|
||||
(static and live migration). These migrations or save/restore operations can
|
||||
take place either from certain prior SLES versioned hosts to a SLES 15 SP4
|
||||
host or between hosts of the same version. Certain other restrictions also
|
||||
apply.
|
||||
|
||||
- Security considerations include seccomp2 based sandboxing, vTPM, privileged
|
||||
helpers and a security model which allows running guests as a non-root user.
|
||||
|
||||
- QEMU/KVM supports a wide range of operating systems within the VMs. See the
|
||||
online SUSE documentation for supported OS's. Windows guests can optionally be
|
||||
accelerated with QEMU/KVM provided Hyper-V hypercalls, or with paravirtual
|
||||
drivers from the SUSE Virtual Machine Driver Pack. Linux includes a number of
|
||||
paravirtual drivers as well.
|
||||
|
||||
- QEMU provides best effort reuse of existing disk images, including those with
|
||||
systems installed, through geometry probing. Also disk images produced by
|
||||
other popular virtualization technologies may be imported into QEMU supported
|
||||
storage formats. These QEMU formats include features which exploit the
|
||||
benefits of virtualization.
|
||||
|
||||
- Memory, cpu and disk space overcommit are possible and can be beneficial when
|
||||
done responsibly. Additional management of these resources comes in the form
|
||||
of memory ballooning or hotplug, host KSM, vcpu hot-add, online disk resizing,
|
||||
trim, discard and hole punching.
|
||||
|
||||
- Guest performance is enhanced through the use of virtio devices, various disk
|
||||
caching modes, network acceleration via the vhost-net kernel module, multi-
|
||||
queue network transmit capabilities, host transparent huge pages (THP) and
|
||||
direct hugetlb usage. Physical PCI and USB devices may also be passed through
|
||||
to the guest, including SR-IOV VF's.
|
||||
|
||||
- The guest UI is accessable via GTK, VNC, Spice, and serial (including curses
|
||||
TUI) interfaces.
|
||||
|
||||
- Guest timekeeping is supported in a variety of ways, including a paravirtual
|
||||
clocksource, and options for the various guest clocks for how to handle the
|
||||
timeslicing of the guest's execution on the host.
|
||||
|
||||
- Guest OS's interact with virtualized hardware including a choice of either
|
||||
older or more recent x86 system chipsets, system devices and buses, and a
|
||||
variety of common storage and networking emulated devices. SMBIOS and ACPI
|
||||
table details can be customized.
|
||||
|
||||
- In addition to the para-virtualized devices already mentioned, other devices
|
||||
and infrastructure designed to avoid virtualization "problem areas" are
|
||||
available such as SPICE graphics, vmmouse emulation, tablet style pointer
|
||||
interfaces and virtio based UI interfaces.
|
||||
|
||||
- A built-in user-mode network (SLIRP) stack is available.
|
||||
|
||||
- Portions of the host file system may be shared with a guest by using virtFS.
|
||||
|
||||
- A guest "agent" is available for SLES 15 SP4 KVM guests via the
|
||||
qemu-guest-agent package. This allows some introspection and control of the
|
||||
guest OS environment from the host.
|
||||
|
||||
QEMU/KVM Technology Previews
|
||||
----------------------------
|
||||
|
||||
- Nested VMX and SVM virtualization is possible.
|
||||
|
||||
- All features indicated as not being supported in this document fall under the
|
||||
Technology Preview definition contained in the main product's release notes.
|
||||
|
||||
Noteworthy QEMU/KVM Unsupported Features
|
||||
----------------------------------------
|
||||
|
||||
- Note that some features are unsupported simply due to lack of validation. If
|
||||
an existing feature is desired, but not marked supported, let SUSE know about
|
||||
your requirements.
|
||||
|
||||
- The TCG "acceleration" mode may be helpful for problem isolation, but
|
||||
otherwise presents insufficient benefit and stability.
|
||||
|
||||
- Use of -cpu host is not supported in all host/guest configurations.
|
||||
|
||||
- GlusterFS integration is not enabled.
|
||||
|
||||
Deprecated, Superseded, Modified and Dropped Features
|
||||
-----------------------------------------------------
|
||||
|
||||
- https://qemu-project.gitlab.io/qemu/about/deprecated.html and
|
||||
https://qemu-project.gitlab.io/qemu/about/removed-features.html
|
||||
These websites track features deprecation and removal at the upstream
|
||||
development level. Our qemu package inherits this community direction, but be
|
||||
aware that we can and will deviate as needed. Those deviations and additional
|
||||
information can be found in this section. Feature deprecation as well as
|
||||
removed features are also tracked in the "System Emulation" section of the
|
||||
documentation installed with the qemu package.
|
||||
|
||||
- qemu-img: Deprecate use of -b without -F. Creating an image that requires
|
||||
format probing of the backing image is potentially unsafe and is now
|
||||
deprecated.
|
||||
|
||||
- When no video adapter is specified, the default used is stdvga. This differs
|
||||
from the default of prior releases which was cirrus. The cirrus adapter was
|
||||
considered too outdated to continue to use as the default.
|
||||
|
||||
- The deprecated windows drivers (win-virtio-drivers.iso) are no longer provided.
|
||||
The Virtual Machine Driver Pack is the supported way to get virtio drivers for
|
||||
Windows guests.
|
||||
|
||||
- The use of ",boot=on" for virtio disks is no longer needed since the bios used
|
||||
supports the virtio block interface directly. In fact, its usage may cause
|
||||
problems, and is now considered deprecated.
|
||||
|
||||
- The previously non-persistent backing file with pmem=on is deprecated. Modify
|
||||
VM configuration to set pmem=off to continue using fake NVDIMM with backing
|
||||
file or move backing file to NVDIMM storage and keep pmem=on.
|
||||
|
||||
- The use of "?" as a parameter to "-cpu", "-soundhw", "-device", "-M",
|
||||
"-machine" and "-d" is now considered deprecated. Use "help"
|
||||
instead.
|
||||
|
||||
- The use of "if=scsi" as a parameter to "-drive" does not work anymore with PC
|
||||
machine types, as it created an obsolete SCSI controller model.
|
||||
|
||||
- Passthrough of a host floppy device is now considered deprecated.
|
||||
|
||||
- Use of aio=native without direct cache mode also being specified (cache=none,
|
||||
cache=directsync, or cache.direct=on) is no longer allowed.
|
||||
|
||||
- The use of image encryption in qcow and qcow2 formats is now considered
|
||||
deprecated.
|
||||
Analysis has shown it to be weak encryption, in addition to suffering from
|
||||
poor design. Images can easily be converted to a non-encrypted format.
|
||||
|
||||
- Use of acpi, boot-opts, and smp-opts in a -readconfig config file are now
|
||||
considered deprecated. In the future those names will be standardized to
|
||||
acpitable, boot, and smp respectively.
|
||||
|
||||
- When only a partial SMP topology is provided (ie only some of sockets, cores,
|
||||
threads) the derived guest ABI is not guaranteed to be equivalent in future
|
||||
versions.
|
||||
|
||||
- These previously supported command line options are now considered deprecated:
|
||||
-display sdl,window_close= (use -display sdl,window-close)
|
||||
-no-quit (use -display ...,window-close=off)
|
||||
-M option kernel-irqchip=off
|
||||
-chardev tty (use serial name instead)
|
||||
-chardev paraport (use parallel name instead)
|
||||
-device virtio-blk,scsi= (use virtio-scsi instead)
|
||||
-device virtio-blk-pci,scsi= (use virtio-scsi instead)
|
||||
-enable-fips (not really helpful - see https://git.qemu.org/?p=qemu.git;a=commit;h=166310299a1e7824bbff17e1f016659d18b4a559 for details)
|
||||
-realtime mlock= (use -overcommit mem-lock= instead)
|
||||
-spice password=string (use password-string option instead)
|
||||
-writeconfig (no replacement - never really worked right)
|
||||
-share and noshare must be replaced by share=on/share=off
|
||||
-nodelay must be replaced by nodelay=on rather than delay=off
|
||||
-object-add options opened=on and loaded=on (both had no effect)
|
||||
|
||||
- These previously supported command line options are no longer supported:
|
||||
-device ide-drive (use ide-hd or ide-cd instead)
|
||||
-device scsi-disk (use scsi-hd or scsi-cd instead)
|
||||
|
||||
- The previously supported machine types pc-0.12, pc-0.14 and pc-0.15 are no
|
||||
longer recognized. Switch to a newer machine type.
|
||||
|
||||
- These previously supported command line options are no longer recognized:
|
||||
-balloon (use -device virtio-balloon instead)
|
||||
-clock
|
||||
-device ivshmem (use ivshmem-doorbell or ivshmem-plain instead)
|
||||
-device pc-sysfw (no longer needed)
|
||||
-device pci-assign, -device kvm-pci-assign (use -device vfio-pci instead)
|
||||
-display sdl
|
||||
-no-frame
|
||||
-nodefconfig (use -no-user-config instead)
|
||||
-realtime ...
|
||||
-sdl
|
||||
-show-cursor
|
||||
-virtioconsole (use -device virtconsole instead)
|
||||
|
||||
- Specifying a cpu feature with both "+feature/-feature" and "feature=on/off"
|
||||
will now cause a warning. The current behavior for this combination where
|
||||
"+feature/-feature" wins over "feature=on/off", will be changed going forward
|
||||
so that "+feature" and "-feature" will be synonyms for "feature=on" and
|
||||
"feature=off" respectively.
|
||||
|
||||
- The case of specified sockets, cores, and threads not matching the vcpu count
|
||||
is no longer silently ignored. QEMU now requires that the topology match the
|
||||
vcpu count.
|
||||
|
||||
- The previously supported blkdev-add QMP command has been flagged as lacking
|
||||
and could possibly change syntax in the future.
|
||||
|
||||
- These previously unsupported command line options are now deprecated:
|
||||
-no-kvm-pit
|
||||
-soundhw (use -device ... instead)
|
||||
|
||||
- These previously unsupported command line options are no longer recognized:
|
||||
-bt
|
||||
-device at24c-eeprom
|
||||
-device ccid-card-passthru
|
||||
-device cfi.pflash01
|
||||
-device esp
|
||||
-device exynos4210-ehci-usb
|
||||
-device fusbh200-ehci-usb
|
||||
-device icc-bridge
|
||||
-device q35-pcihost
|
||||
-device mch
|
||||
-device mmio_interface
|
||||
-device smbus-eeprom
|
||||
-device SUNW,fdtwo
|
||||
-device sysbus-ahci
|
||||
-device sysbus-fdc
|
||||
-device sysbus-ohci
|
||||
-device tegra2-ehci-usb
|
||||
-device testdev (use -device pc-testdev instead)
|
||||
-device vhost-user-vsock-pci-transitional
|
||||
-device vhost-vsock-pci-transitional
|
||||
-device virtio-iommu-pci-transitional
|
||||
-device virtio-mmio
|
||||
-device xln,ps7-usb
|
||||
-enable-hax (use -accel hax instead)
|
||||
-enable-nesting
|
||||
-kvm-shadow-memory (use -machine kvm_shadow_mem= instead)
|
||||
-M mac
|
||||
-machine mac
|
||||
-no-kvm-irqchip (use -machine kernel_irqchip=off instead)
|
||||
-no-kvm-pit
|
||||
-no-kvm-pit-reinjection (use -global kvm-pit.lost_tick_policy=discard instead)
|
||||
-nvram
|
||||
-old-param
|
||||
-osk
|
||||
-pcidevice (use -device vfio-pci instead)
|
||||
-qtest
|
||||
-semihosting
|
||||
-tb-size
|
||||
-tdf (note: mistakenly listed previously as supported)
|
||||
-xen-create
|
||||
|
||||
- The previously unsupported machine types pc-0.10, pc-0.11, pc-0.13,
|
||||
pc-1.0, pc-1.1, pc-1.2 and pc-1.3 are are no longer recognized.
|
||||
|
||||
- These previously supported QMP commands are now deprecated:
|
||||
<previously mentioned items have been moved to another category>
|
||||
|
||||
- These previously supported QMP commands are no longer recognized:
|
||||
info cpustats
|
||||
block_passwd
|
||||
change (use blockdev-change-medium or change-vnc-password instead)
|
||||
cpu-add (use device_add instead)
|
||||
migrate-set-cache-size (use migrate-set-parameters instead)
|
||||
migrate_set_downtime (use migrate-set-parameters instead)
|
||||
migrate_set_speed (use migrate-set-parameters instead)
|
||||
query-cpus (use query-cpus-fast instead)
|
||||
query-events
|
||||
query-migrate-cache-size (use query-migrate-parameters instead)
|
||||
|
||||
- These previously supported monitor commands are now deprecated:
|
||||
change
|
||||
|
||||
- These previously supported monitor commands are no longer recognized:
|
||||
info cpustats
|
||||
block_passwd ...
|
||||
block_passwd
|
||||
cpu-add
|
||||
cpu_set
|
||||
migrate_set_cache_size
|
||||
migrate_set_downtime
|
||||
migrate_set_speed
|
||||
pci_add (use device_add instead)
|
||||
pci_del (use device_del instead)
|
||||
usb_add (use device_add instead)
|
||||
usb_del (use device_del instead)
|
||||
|
||||
- These previously unsupported monitor command are now deprecated:
|
||||
<previously mentioned items have been moved to another category>
|
||||
|
||||
- These previously unsupported monitor commands are no longer recognized:
|
||||
acl_add ...
|
||||
acl_policy ...
|
||||
acl_remove ...
|
||||
acl_reset ...
|
||||
acl_show ...
|
||||
host_net_add
|
||||
host_net_remove
|
||||
|
||||
- These previously unsupported QMP commands are now supported under a new name:
|
||||
x-block-dirty-bitmap-disable (use block-dirty-bitmap-disable instead)
|
||||
x-block-dirty-bitmap-enable (use block-dirty-bitmap-enable instead)
|
||||
x-block-dirty-bitmap-merge (use block-dirty-bitmap-merge instead)
|
||||
x-block-latency-histogram-set (use block-latency-histogram-set instead)
|
||||
x-blockdev-create (use blockdev-create instead)
|
||||
x-input-send-event (use input-send-event instead)
|
||||
|
||||
- This previously unsupported QMP commands is no longer recognized:
|
||||
x-nbd-server-add-bitmap
|
||||
|
||||
- Due to the lack of migration support (mainly due to ahci interface issues)
|
||||
and other unstable interface issues, earlier versions of the q35 machine type
|
||||
are not supported in this release. The current q35 machine type is however now
|
||||
fully supported.
|
||||
|
||||
- Due to upstream's decision to no longer fully support the qed storage format
|
||||
going forward (since it really provides no benefit over qcow2 and is now no
|
||||
longer actively maintained upstream), creating qed storage images is no longer
|
||||
supported and it is highly discouraged to continue using existing qed images.
|
||||
They should instead be converted to another supported format.
|
||||
|
||||
- If KVM Intel nested virtualization is enabled, and the guest is passed the vmx
|
||||
feature, then live migration or save/restore is prohibited.
|
||||
|
||||
QEMU Command-Line and Monitor Syntax and Support
|
||||
------------------------------------------------
|
||||
|
||||
- The QEMU program command-line syntax is as follows:
|
||||
qemu-system-i386 [options] [disk_image]
|
||||
qemu-system-x86_64 [options] [disk_image]
|
||||
|
||||
Where 'options' are taken from the options listed below, and 'disk_image' is
|
||||
the file system reference to the x86 guest's primary IDE based hard disk
|
||||
image. This image as well as those used with -drive or -cdrom, may be in the
|
||||
raw (no format) or qcow2 storage formats, and may be located in files within
|
||||
the host filesystem, logical volumes, host physical disks, or network based
|
||||
storage. Read only media may also be accessed via URL style protocol
|
||||
specifiers.
|
||||
|
||||
Note that as a general rule, as new command line options are added which serve
|
||||
to replace an older option or interface, you are strongly encouraged to adapt
|
||||
your usage to the new option. The new option is being introduced to provide
|
||||
better functionality and usability going forward. In some cases existing
|
||||
problems or even bugs in older interfaces cannot be fixed due to functional
|
||||
expectations, but are resolved in the newer interface or option.
|
||||
This advice includes moving to the most recent machine type (eg pc-i440fx-6.1
|
||||
instead of pc-i440fx-6.0) if possible.
|
||||
|
||||
- The following command line options are supported:
|
||||
-accel ...
|
||||
-action ...
|
||||
-add-fd ...
|
||||
-alt-grab
|
||||
-append ...
|
||||
-audio-help
|
||||
-audiodev
|
||||
-bios ...
|
||||
-blockdev ...
|
||||
-boot ...
|
||||
-cdrom ...
|
||||
-chardev ...
|
||||
-compat ...
|
||||
-cpu ... (all except host)
|
||||
-ctrl-grab
|
||||
-d ...
|
||||
-daemonize
|
||||
-debugcon ...
|
||||
-device
|
||||
|
||||
[isa-serial|isa-parallel|isa-fdc|ide-hd|ide-cd|VGA|cirrus-vga|rtl8139|
|
||||
usb-hub|usb-ehci|usb-tablet|usb-storage|usb-mouse|usb-kbd|
|
||||
virtserialport|virtconsole|sga|i82559er|scsi-cd|scsi-hd|scsi-generic|
|
||||
scsi-block|pci-serial|pci-serial-2x|pci-serial-4x|ich9-ahci|
|
||||
piix3-usb-uhci|usb-host|usb-serial|usb-wacom-tablet|usb-braille|
|
||||
usb-net|pci-ohci|piix4-usb-uhci|i6300esb|ib700|qxl|qxl-vga|pvpanic|
|
||||
vfio-pci|ivshmem-doorbell|ivshmem-plain|pci-bridge|megasas-gen2|
|
||||
pc-dimm|floppy|e1000e|ccid-card-emulated|ccid-card-passthrough|
|
||||
xen-backend|loader|e1000-82540em|vmgenid|vmcoreinfo|pcie-pci-bridge|
|
||||
ich9-usb-ehci1|ich9-usb-ehci2|ich9-usb-uhci1|ich9-usb-uhci2|
|
||||
ich9-usb-uhci3|ich9-usb-uhci4|ich9-usb-uhci5|ich9-usb-uhci6|
|
||||
usb-redir|vhost-scsi|vhost-scsi-pci|vhost-user-blk|
|
||||
vhost-user-blk-pci|vhost-user-blk-pci-non-transitional|
|
||||
vhost-user-blk-pci-transitional|vhost-user-scsi|vhost-user-scsi-pci|
|
||||
vhost-user-scsi-pci-non-transitional|vhost-user-pci-transitional|
|
||||
vhost-vsock-pci|vhost-vsock-pci-non-transitional|virtio-balloon-pci|
|
||||
virtio-balloon-pci-non-transitional|virtio-balloon-pci-transitional|
|
||||
virtio-blk-pci|virtio-blk-pci-non-transitional|
|
||||
virtio-blk-pci-transitional|virtio-net-pci|
|
||||
virtio-net-pci-non-transitional|virtio-net-pci-transitional|
|
||||
virtio-9p-pci|virtio-9p-pci-non-transitional|
|
||||
virtio-9p-pci-transitional|virtio-serial-pci|
|
||||
virtio-serial-pci-non-transitional|virtio-serial-pci-transitional|
|
||||
virtio-scsi-pci|virtio-scsi-pci-non-transitional|
|
||||
virtio-scsi-pci-transitional|virtio-rng-pci|
|
||||
virtio-rng-pci-non-transitional|virtio-rng-pci-transitional|
|
||||
virtio-input-host-pci|virtio-input-host-pci-non-transitional|
|
||||
virtio-input-host-pci-transitional|virtio-keyboard-pci|
|
||||
virtio-mouse-pci|virtio-tablet-pci|virtio-gpu-pci|virtio-crypto-pci|
|
||||
virtio-vga|vhost-user-fs-pci|vhost-user-gpu|vhost-user-pci-pci|
|
||||
vhost-user-input|vhost-user-input-pci|vhost-user-vga|virtio-mmio|
|
||||
virtio-pmem|virtio-pmem-pci|mc146818rtci|nvme-subsys|guest-loader|
|
||||
pvpanic-pci]
|
||||
(the following are aliases of these supported devices: ahci|
|
||||
e1000|virtio-blk|virtio-net|virtio-serial|virtio-balloon|virtio-9p|
|
||||
virtio-scsi|virtio-rng|virtio-input-host|virtio-keyboard|virtio-mouse|virtio-tablet|virtio-gpu)
|
||||
|
||||
-dfilter range, ...
|
||||
-display ...
|
||||
-drive
|
||||
|
||||
... (if specified if=[floppy|ide|virtio] and format=[qcow2|raw] and
|
||||
snapshot=off only)
|
||||
|
||||
-echr ...
|
||||
-enable-fips
|
||||
-enable-kvm
|
||||
-fda/-fdb ...
|
||||
-fsdev ...
|
||||
-full-screen
|
||||
-fw_cfg ...
|
||||
-gdb ...
|
||||
-global ...
|
||||
-h
|
||||
-hda/-hdb/-hdc/-hdd ...
|
||||
-help
|
||||
-incoming ...
|
||||
-initrd ...
|
||||
-iscsi ...
|
||||
-k ...
|
||||
-kernel ...
|
||||
-loadvm ...
|
||||
-m ...
|
||||
-M
|
||||
|
||||
[help|none|pc-i440fx-1.4|pc-i440fx-1.7|pc-i440fx-2.0|pc-i440fx-2.3|
|
||||
pc-i440fx-2.6|pc-i440fx-2.9|pc-i440fx-2.11|pc-i440fx-3.1|pc-i440fx-4.2|
|
||||
pc-i440fx-5.2|pc-i440fx-6.0|pc-i440fx-6.1|pc-q35-2.6|pc-q35-2.9|
|
||||
pc-q35-2.11|pc-q35-3.1|pc-q35-4.2|pc-q35-5.2|pc-q35-6.0|pc-q35-6.1|
|
||||
xenfv|xenfv-4.2]
|
||||
|
||||
-machine
|
||||
|
||||
[help|none|pc-i440fx-1.4|pc-i440fx-1.7|pc-i440fx-2.0|
|
||||
pc-i440fx-2.3|pc-440fx-2.6|pc-i440fx-2.9|pc-i440fx-2.11|
|
||||
pc-i440fx-3.1|pc-i440fx-4.2|pc-i440fx-5.2|pc-i440fx-6.0|
|
||||
pc-i440fx-6.1|pc-q35-2.6|pc-q35-2.9|pc-q35-2.11|pc-q35-3.1|
|
||||
pc-q35-4.2|pc-q35-5.2|pc-q35-6.0|pc-q35-6.1|xenfv|xenifv-4.2]
|
||||
|
||||
-mem-path ...
|
||||
-mem-prealloc
|
||||
-mon ...
|
||||
-monitor ...
|
||||
-msg ...
|
||||
-name ...
|
||||
-net
|
||||
|
||||
[bridge|l2tpv3|nic|none|tap|user] ... (for model= only e1000, rtl8139,
|
||||
and virtio are supported)
|
||||
|
||||
-netdev [bridge|tap|user] ...
|
||||
-nic ...
|
||||
-no-acpi
|
||||
-nodefaults
|
||||
-no-fd-bootchk
|
||||
-nographic
|
||||
-no-hpet
|
||||
-no-quit
|
||||
-no-reboot
|
||||
-no-shutdown
|
||||
-no-user-config
|
||||
-numa cpu ...
|
||||
-numa dist ...
|
||||
-object ...
|
||||
-only-migratable
|
||||
-parallel ...
|
||||
-pidfile ...
|
||||
-plugin ...
|
||||
-qmp ...
|
||||
-qmp-pretty ...
|
||||
-readconfig ...
|
||||
-rtc ...
|
||||
-runas ...
|
||||
-s
|
||||
-S
|
||||
-sandbox ...
|
||||
-seed ...
|
||||
-serial ...
|
||||
-smbios ...
|
||||
-smp ...
|
||||
-spice
|
||||
-tpmdev passthrough ...
|
||||
-trace ...
|
||||
-usb
|
||||
-usbdevice [braile|disk|host|mouse|net|serial|tablet]
|
||||
-uuid ...
|
||||
-version
|
||||
-vga [cirrus|none|qxl|std|xenfb]
|
||||
-virtfs ...
|
||||
-vnc ...
|
||||
-watchdog ...
|
||||
-watchdog-action ...
|
||||
-writeconfig ...
|
||||
-xen-attach ...
|
||||
-xen-domid ...
|
||||
-xen-domid-restrict ...
|
||||
|
||||
- The following monitor commands are supported:
|
||||
?
|
||||
announce_self ...
|
||||
balloon ...
|
||||
block_resize ...
|
||||
boot_set ...
|
||||
c
|
||||
change ...
|
||||
chardev-add ...
|
||||
chardev-change ...
|
||||
chardev-remove ...
|
||||
chardev-send-break ...
|
||||
client_migrate_info ...
|
||||
closefd ...
|
||||
cont
|
||||
cpu ...
|
||||
delvm ...
|
||||
device_add ...
|
||||
device_del ...
|
||||
drive_add ...
|
||||
drive_backup ...
|
||||
drive_del ...
|
||||
dump_guest_memory ...
|
||||
eject ...
|
||||
gdbserver ...
|
||||
gpa2hpa ...
|
||||
gpa2hva ...
|
||||
gva2gpa ...
|
||||
help
|
||||
i ...
|
||||
info ...
|
||||
loadvm ...
|
||||
logfile ...
|
||||
logitem ...
|
||||
mce ...
|
||||
memsave ...
|
||||
migrate ...
|
||||
migrate_cancel
|
||||
migrate_continue ...
|
||||
migrate_incoming
|
||||
migrate_pause
|
||||
migrate_recover ...
|
||||
migrate_set_capability ...
|
||||
migrate_set_parameter ...
|
||||
migrate_start_post_copy
|
||||
mouse_button ...
|
||||
mouse_move ...
|
||||
mouse_set ...
|
||||
nmi ...
|
||||
o ...
|
||||
object_add ...
|
||||
object_del ...
|
||||
p ...
|
||||
pci_add ...
|
||||
pci_del...
|
||||
pmemsave ...
|
||||
print ...
|
||||
q
|
||||
qemu-io ...
|
||||
qom-list
|
||||
qom-set
|
||||
ringbuf_read ...
|
||||
ringbuf_write ...
|
||||
savevm ...
|
||||
screendump ...
|
||||
sendkey ...
|
||||
snapshot_blkdev_internal ...
|
||||
snapshot_delete_blkdev_internal ...
|
||||
stop
|
||||
sum ...
|
||||
system_powerdown
|
||||
system_reset
|
||||
system_wakeup
|
||||
trace-event ...
|
||||
watchdog_action ...
|
||||
x ...
|
||||
xp ...
|
||||
|
||||
- The following QMP commands are supported:
|
||||
add_client
|
||||
add-fd
|
||||
announce-self
|
||||
balloon
|
||||
blockdev-add
|
||||
blockdev-backup
|
||||
blockdev-change-medium
|
||||
blockdev-close-tray
|
||||
blockdev-create
|
||||
blockdev-del
|
||||
blockdev-mirror
|
||||
blockdev-open-tray
|
||||
blockdev-snapshot
|
||||
blockdev-snapshot-delete-internal-sync
|
||||
blockdev-snapshot-internal-sync
|
||||
blockdev-snapshot-sync
|
||||
block-commit
|
||||
block-dirty-bitmap-add
|
||||
block-dirty-bitmap-clear
|
||||
block-dirty-bitmap-disable
|
||||
block-dirty-bitmap-enable
|
||||
block-dirty-bitmap-merge
|
||||
block-dirty-bitmap-remove
|
||||
block-export-add
|
||||
block-export-del
|
||||
block-latency-histogram-set
|
||||
block_resize
|
||||
block_set_io_throttle
|
||||
block-set-write-threshold
|
||||
block_stream
|
||||
calc-dirty-rate
|
||||
change-vnc-password
|
||||
chardev-add
|
||||
chardev-change
|
||||
chardev-remove
|
||||
chardev-send-break
|
||||
client_migrate_info
|
||||
closefd
|
||||
cont
|
||||
cpu
|
||||
device_add
|
||||
device_del
|
||||
device-list-properties
|
||||
display-reload
|
||||
dump-guest-memory
|
||||
eject
|
||||
expire_password
|
||||
getfd
|
||||
human-monitor-command
|
||||
inject-nmi
|
||||
input-send-event
|
||||
job-cancel
|
||||
job-complete
|
||||
job-dismiss
|
||||
job-finalize
|
||||
job-pause
|
||||
job-resume
|
||||
memsave
|
||||
migrate
|
||||
migrate_cancel
|
||||
migrate-continue
|
||||
migrate-incoming
|
||||
migrate-pause
|
||||
migrate-resume
|
||||
migrate-set-capabilities
|
||||
migrate-set-parameters
|
||||
migrate-start-postcopy
|
||||
object-add
|
||||
object-del
|
||||
pmemsave
|
||||
qmp_capabilities
|
||||
qom-get
|
||||
qom-list
|
||||
qom-list-types
|
||||
qom-set
|
||||
query-acpi-ospm-status
|
||||
query-balloon
|
||||
query-block
|
||||
query-block-exports
|
||||
query-block-jobs
|
||||
query-blockstats
|
||||
query-chardev
|
||||
query-chardev-backends
|
||||
query-command-line-options
|
||||
query-commands
|
||||
query-cpu-definitions
|
||||
query-cpu-model-expansion
|
||||
query-cpus-fast
|
||||
query-current-machine
|
||||
query-dirty-rate
|
||||
query-display-options
|
||||
query-dump
|
||||
query-dump-guest-memory-capability
|
||||
query-fdsets
|
||||
query-gic-capabilities
|
||||
query-hotpluggable-cpus
|
||||
query-iothreads
|
||||
query-jobs
|
||||
query-kvm
|
||||
query-machines
|
||||
query-memdev
|
||||
query-memory-devices
|
||||
query-memory-size-summary
|
||||
query-mice
|
||||
query-migrate
|
||||
query-migrate-capabilities
|
||||
query-migrate-parameters
|
||||
query-name
|
||||
query-named-block-nodes
|
||||
query-pci
|
||||
query-pr-managers
|
||||
query-qmp-schema
|
||||
query-rocker
|
||||
query-rocker-of-dpa-flows
|
||||
query-rocker-of-dpa-groups
|
||||
query-rocker-ports
|
||||
query-rx-filter
|
||||
query-sev
|
||||
query-sev-capabilities
|
||||
query-sev-launch-measure
|
||||
query-spice
|
||||
query-status
|
||||
query-target
|
||||
query-tpm
|
||||
query-tpm-models
|
||||
query-tpm-types
|
||||
query-uuid
|
||||
query-version
|
||||
query-vnc
|
||||
query-vnc-servers
|
||||
query-yank
|
||||
query-xen-replication-status
|
||||
quit
|
||||
remove-fd
|
||||
ringbuf-read
|
||||
ringbuf-write
|
||||
screendump
|
||||
send-key
|
||||
set-action
|
||||
set_link
|
||||
set_password
|
||||
set-numa-node
|
||||
sev-inject-launch-secret
|
||||
snapshot-delete
|
||||
snapshot-load
|
||||
snapshot-save
|
||||
stop
|
||||
system_powerdown
|
||||
system_reset
|
||||
system_wakeup
|
||||
trace-event-get-state
|
||||
trace-event-set-state
|
||||
transaction
|
||||
watchdog-set-action
|
||||
xen-load-devices-state
|
||||
xen-save-devices-state
|
||||
xen-set-global-dirty-log
|
||||
yank
|
||||
|
||||
- The following command line options are unsupported:
|
||||
|
||||
-acpitable ...
|
||||
-chroot ...
|
||||
-cpu host
|
||||
-curses
|
||||
-device
|
||||
|
||||
[ipoctal232|i82562|nec-usb-xhci|hda-duplex|hda-output|usb-bot|
|
||||
lsi53c810a|isa-debug-exit|ne2k_pci|usb-uas|ioh3420|isa-ide|usb-ccid|
|
||||
pcnet|ich9-intel-hda|dc390|hda-micro|x3130-upstream|isa-cirrus-vga|
|
||||
pc-testdev|ne2k_isa|isa-vga|cs4231a|gus|vmware-svga|i82801b11-bridge|
|
||||
i82557a|i82557c|i82557b|i82801|AC97|am53c974|intel-hda|i82558a|
|
||||
i82558b|usb-audio|i82550|isa-debugcon|sb16|megasas|i82551|
|
||||
xio3130-downstream|vt82c686b-usb-uhci|tpci200|i82559a|i82559b|i82559c|
|
||||
isa-applesmc|adlib|ES1370|lsi53c810|nvme|pci-testdev|pvscsi|
|
||||
virtio-9p-device|virtio-balloon-device|virtio-blk-device|
|
||||
virtio-net-device|virtio-rng-device|virtio-scsi-device|
|
||||
virtio-serial-device|vmxnet3|xen-pci-passthrough|xen-platform|
|
||||
xen-pvdevice|piix3-ide|piix3-ide-xen|piix3-ide|i8042|sdhci-pci|
|
||||
secondary-vga|edu|intel_iommu|usb-mtp|e1000-82544gc|e1000-82545em|
|
||||
pci-bridge-seat|pxb|pxb-pcie|rocker|virtio-input-host-device|
|
||||
virtio-keyboard-device|virtio-mouse-device|virtio-tablet-device|
|
||||
hyperv-testdev|generic-sdhci|igd-passthrough-isa-bridge|
|
||||
ipmi-bmc-extern|ipmi-bmc-sim|isa-ipmi-bt|isa-ipmi-kcs|mptsas1068|
|
||||
nvdimm|pxb-host|sd-card|virtio-gpu-device|amd-iommu|AMDVI-PCI|
|
||||
vhost-vsock-device|virtio-crypto-device|vfio-pci-igd-lpc-bridge|
|
||||
pcie-root-port|qemu-xhci|*-i386-cpu|*-x86_64-cpu|pvrdma|bochs-display|
|
||||
ramfb|ccid-card-emulated|ccid-card-passthru|kvaser_pci|tpm-crb|
|
||||
mioe3680_pci|pcm3680_pci|hyperv-synic|vfio-pci-nohotplug|
|
||||
vfio-platform|xen-bridge|xen-cdrom|xen-disk|ati-vga|cpu-cluster|
|
||||
intel-iommu|vhost-user-fs-device|tulip|ati-vga|i2c-ddc|pci-ipmi-bt|
|
||||
pci-ipmi-kcs|serial|serial-io|serial-mm|virtio-iommu-device|
|
||||
virtio-iommu-pci|virtio-iommu-pci-nontransitional|xen-sysdev|
|
||||
imx.usbphy|vmbus-bridge|vhost-user-vsock-device|vhost-user-vsock-pci|
|
||||
vhost-user-vsock-pci-non-transitional|virtio-mem|virtio-mem-pci|
|
||||
nvme-ns|ctucan_pci|u2f-passthru]
|
||||
(the following are aliases of these unsupported devices: lsi)
|
||||
(note that some of these device names represent supported devices and
|
||||
are used internally, but are not specifyable via -device even though
|
||||
they appear in the list of devices)
|
||||
|
||||
-drive
|
||||
|
||||
,if=[scsi|mtd|pflash], snapshot=on, format=[anything besides qcow2 or
|
||||
raw]
|
||||
|
||||
-dtb file
|
||||
-enable-sync-profile
|
||||
-g ...
|
||||
-icount ...
|
||||
-L ...
|
||||
-M
|
||||
|
||||
[pc|isapc|microvm|x-remote|pc-i440fx-1.5|pc-i440fx-1.6|pc-i440fx-2.1|
|
||||
pc-i440fx-2.2|pc-i440fx-2.4|pc-i440fx-2.5|pc-i440fx-2.7|pc-i440fx-2.8|
|
||||
pc-i440fx-2.10|pc-i440fx-2.12|pc-i440fx-3.0|pc-i440fx-4.0|pc-i440fx-4.1|
|
||||
pc-i440fx-5.0|pc-i440fx-5.1|pc-i440fx-6.0|q35|pc-q35-1.4|pc-q35-1.5|
|
||||
pc-q35-1.6|pc-q35-1.7|pc-q35-2.0|pc-q35-2.1|pc-q35-2.2|pc-q35-2.3|
|
||||
pc-q35-2.4|pc-q35-2.5|pc-q35-2.7|pc-q35-2.8|pc-q35-2.10|pc-q35-2.12|
|
||||
pc-q35-3.0|pc-q35-4.0|pc-q35-4.1|pc-q35-5.0|pc-q35-5.1|pc-q35-6.0]
|
||||
|
||||
-machine
|
||||
|
||||
[pc|isapc|microvm|x-remote|pc-i440fx-1.5|pc-i440fx-1.6|pc-i440fx-2.1|
|
||||
pc-i440fx-2.2|pc-i440fx-2.4|pc-i440fx-2.5|pc-i440fx-2.7|
|
||||
pc-i440fx-2.8|pc-i440fx-2.10|pc-i440fx-2.12|pc-i440fx-3.0|
|
||||
pc-i440fx-4.0|pc-i440fx-4.1|pc-i440fx-5.0|pc-i440fx-5.1|
|
||||
pc-i440fx-6.0|q35|pc-q35-1.4|pc-q35-1.5|pc-q35-1.6|pc-q35-1.7|
|
||||
pc-q35-2.0|pc-q35-2.1|pc-q35-2.2|pc-q35-2.3|pc-q35-2.4|pc-q35-2.5|
|
||||
pc-q35-2.7|pc-q35-2.8|pc-q35-2.10|pc-q35-2.12|pc-q35-3.0|pc-q35-4.0|
|
||||
pc-q35-4.1|pc-q35-5.0|pc-q35-5.1|pc-q35-6.0]
|
||||
|
||||
-mtdblock file
|
||||
-net [socket|vde] ...
|
||||
-netdev [hubport|l2tpv3|socket|vde] ...
|
||||
-no-kvm
|
||||
-numa node ...
|
||||
-option-rom ...
|
||||
-overcommit ...
|
||||
-pflash file
|
||||
-portrait
|
||||
-preconfig
|
||||
-prom-env ...
|
||||
-qtest ...
|
||||
-qtest-log ...
|
||||
-rotate
|
||||
-sd file
|
||||
-sdl
|
||||
-set ...
|
||||
-singlestep
|
||||
-snapshot
|
||||
-soundhw ...
|
||||
-tpmdev emulator ...
|
||||
-vga [cg3|tcx|virtio|vmware]
|
||||
-win2k-hack
|
||||
|
||||
- The following monitor commands are unsupported:
|
||||
block_job_cancel ...
|
||||
block_job_complete ...
|
||||
block_job_pause ...
|
||||
block_job_resume ...
|
||||
block_job_set_speed ...
|
||||
commit ...
|
||||
drive_mirror ...
|
||||
exit_preconfig
|
||||
expire_password ...
|
||||
hostfwd_add ...
|
||||
hostfwd_remove ...
|
||||
nbd_server_add ...
|
||||
nbd server_start ...
|
||||
nbd_server_stop ...
|
||||
netdev_add
|
||||
netdev_del ...
|
||||
pcie_aer_inject_error ...
|
||||
replay_break ...
|
||||
replay_delete_break
|
||||
replay_seek ...
|
||||
set_link ...
|
||||
set_password ...
|
||||
singlestep ...
|
||||
snapshot_blkdev ...
|
||||
stopcapture ...
|
||||
sync-profile ...
|
||||
wavcapture ...
|
||||
x_colo_lost_heartbeat
|
||||
|
||||
- The following QMP commands are unsupported:
|
||||
block-job-cancel
|
||||
block-job-complete
|
||||
block-job-pause
|
||||
block-job-resume
|
||||
block-job-set-speed
|
||||
change-backing-file
|
||||
drive-backup
|
||||
drive-mirror
|
||||
netdev_add
|
||||
netdev_del
|
||||
nbd-server-add
|
||||
nbd-server-start
|
||||
nbd-server-stop
|
||||
query-colo-status
|
||||
query-replay
|
||||
replay_break
|
||||
replay_delete_break
|
||||
replay_seek
|
||||
x-blockdev-amend
|
||||
x-blockdev-change
|
||||
x-blockdev-insert-medium
|
||||
x-blockdev-remove-medium
|
||||
x-blockdev-reopen
|
||||
x-colo-lost-heartbeat
|
||||
x-debug-block-dirty-bitmap-sha256
|
||||
x-debug-query-block-graph
|
||||
x-exit-preconfig
|
||||
xen-colo-do-checkpoint
|
||||
xen-set-replication
|
@ -1,29 +0,0 @@
|
||||
From: Bruce Rogers <brogers@suse.com>
|
||||
Date: Mon, 11 Mar 2019 22:02:37 -0600
|
||||
Subject: tests: change error message in test 162
|
||||
|
||||
Git-commit: 0000000000000000000000000000000000000000
|
||||
|
||||
Since we have a quite restricted execution environment, as far as
|
||||
networking is concerned, we need to change the error message we expect
|
||||
in test 162. There is actually no routing set up so the error we get is
|
||||
"Network is unreachable". Change the expected output accordingly.
|
||||
|
||||
Signed-off-by: Bruce Rogers <brogers@suse.com>
|
||||
---
|
||||
tests/qemu-iotests/162.out | 2 +-
|
||||
1 file changed, 1 insertion(+), 1 deletion(-)
|
||||
|
||||
diff --git a/tests/qemu-iotests/162.out b/tests/qemu-iotests/162.out
|
||||
index f8714cb0d27d2b15d3feaaaf729c..2793aed277903222ea4396157d31 100644
|
||||
--- a/tests/qemu-iotests/162.out
|
||||
+++ b/tests/qemu-iotests/162.out
|
||||
@@ -1,7 +1,7 @@
|
||||
QA output created by 162
|
||||
|
||||
=== NBD ===
|
||||
-qemu-img: Could not open 'json:{"driver": "nbd", "host": -1}': address resolution failed for -1:10809: Name or service not known
|
||||
+qemu-img: Could not open 'json:{"driver": "nbd", "host": 42}': Failed to connect socket: Network is unreachable
|
||||
image: nbd://localhost:PORT
|
||||
image: nbd+unix://?socket=42
|
||||
|
@ -1,31 +0,0 @@
|
||||
From: Bruce Rogers <brogers@suse.com>
|
||||
Date: Tue, 20 Nov 2018 15:46:41 -0700
|
||||
Subject: tests/qemu-iotests: Triple timeout of i/o tests due to obs
|
||||
environment
|
||||
|
||||
Git-commit: 0000000000000000000000000000000000000000
|
||||
|
||||
Executing tests in obs is very fickle, since you aren't guaranteed
|
||||
reliable cpu time. Triple the timeout for each test to help ensure
|
||||
we don't fail a test because the stars align against us.
|
||||
|
||||
Signed-off-by: Bruce Rogers <brogers@suse.com>
|
||||
[DF: Small tweaks necessary for rebasing on top of 6.2.0]
|
||||
Signed-off-by: Dario Faggioli <dfaggioli@suse.com>
|
||||
---
|
||||
tests/qemu-iotests/common.qemu | 2 +-
|
||||
1 file changed, 1 insertion(+), 1 deletion(-)
|
||||
|
||||
diff --git a/tests/qemu-iotests/common.qemu b/tests/qemu-iotests/common.qemu
|
||||
index 0f1fecc68edfb07633589b0f3c75..b23c4798aa112efee49cf5c9469e 100644
|
||||
--- a/tests/qemu-iotests/common.qemu
|
||||
+++ b/tests/qemu-iotests/common.qemu
|
||||
@@ -85,7 +85,7 @@ _timed_wait_for()
|
||||
timeout=yes
|
||||
|
||||
QEMU_STATUS[$h]=0
|
||||
- read_timeout="-t ${QEMU_COMM_TIMEOUT}"
|
||||
+ read_timeout="-t $((${QEMU_COMM_TIMEOUT}*3))"
|
||||
if [ -n "${GDB_OPTIONS}" ]; then
|
||||
read_timeout=
|
||||
fi
|
1098
update_git.sh
1098
update_git.sh
File diff suppressed because it is too large
Load Diff
@ -1,30 +0,0 @@
|
||||
From: Bruce Rogers <brogers@suse.com>
|
||||
Date: Wed, 16 Jan 2019 16:29:36 -0700
|
||||
Subject: xen: add block resize support for xen disks
|
||||
|
||||
Provide monitor naming of xen disks, and plumb guest driver
|
||||
notification through xenstore of resizing instigated via the
|
||||
monitor.
|
||||
|
||||
[BR: minor edits to pass qemu's checkpatch script]
|
||||
[BR: significant rework needed due to upstream xen disk qdevification]
|
||||
[BR: At this point, monitor_add_blk call is all we need to add!]
|
||||
Signed-off-by: Bruce Rogers <brogers@suse.com>
|
||||
---
|
||||
hw/block/xen-block.c | 3 +++
|
||||
1 file changed, 3 insertions(+)
|
||||
|
||||
diff --git a/hw/block/xen-block.c b/hw/block/xen-block.c
|
||||
index 4c7f17c253e97bd747347aca3063..46168753f3dcc0d1795d5f567145 100644
|
||||
--- a/hw/block/xen-block.c
|
||||
+++ b/hw/block/xen-block.c
|
||||
@@ -270,6 +270,9 @@ static void xen_block_realize(XenDevice *xendev, Error **errp)
|
||||
|
||||
xen_block_set_size(blockdev);
|
||||
|
||||
+ if (!monitor_add_blk(conf->blk, blockdev->drive->id, errp)) {
|
||||
+ return;
|
||||
+ }
|
||||
blockdev->dataplane =
|
||||
xen_block_dataplane_create(xendev, blk, conf->logical_block_size,
|
||||
blockdev->props.iothread);
|
@ -1,41 +0,0 @@
|
||||
From: Olaf Hering <olaf@aepfle.de>
|
||||
Date: Tue, 8 Jan 2019 14:20:08 +0100
|
||||
Subject: xen: ignore live parameter from xen-save-devices-state
|
||||
|
||||
References: bsc#1079730, bsc#1101982, bsc#1063993
|
||||
|
||||
The final step of xl migrate|save for an HVM domU is saving the state of
|
||||
qemu. This also involves releasing all block devices. While releasing
|
||||
backends ought to be a separate step, such functionality is not
|
||||
implemented.
|
||||
|
||||
Unfortunately, releasing the block devices depends on the optional
|
||||
'live' option. This breaks offline migration with 'virsh migrate domU
|
||||
dom0' because the sending side does not release the disks, as a result
|
||||
the receiving side can not properly claim write access to the disks.
|
||||
|
||||
As a minimal fix, remove the dependency on the 'live' option. Upstream
|
||||
may fix this in a different way, like removing the newly added 'live'
|
||||
parameter entirely.
|
||||
|
||||
Fixes: 5d6c599fe1 ("migration, xen: Fix block image lock issue on live migration")
|
||||
|
||||
Signed-off-by: Olaf Hering <olaf@aepfle.de>
|
||||
Signed-off-by: Bruce Rogers <brogers@suse.com>
|
||||
---
|
||||
migration/savevm.c | 2 +-
|
||||
1 file changed, 1 insertion(+), 1 deletion(-)
|
||||
|
||||
diff --git a/migration/savevm.c b/migration/savevm.c
|
||||
index 48e85c052c2c0197405803b9ef83..58eea0775eaa78d5d0250cdcbcaf 100644
|
||||
--- a/migration/savevm.c
|
||||
+++ b/migration/savevm.c
|
||||
@@ -2950,7 +2950,7 @@ void qmp_xen_save_devices_state(const char *filename, bool has_live, bool live,
|
||||
* So call bdrv_inactivate_all (release locks) here to let the other
|
||||
* side of the migration take control of the images.
|
||||
*/
|
||||
- if (live && !saved_vm_running) {
|
||||
+ if (!saved_vm_running) {
|
||||
ret = bdrv_inactivate_all();
|
||||
if (ret) {
|
||||
error_setg(errp, "%s: bdrv_inactivate_all() failed (%d)",
|
@ -1,49 +0,0 @@
|
||||
From: Bruce Rogers <brogers@suse.com>
|
||||
Date: Wed, 9 Mar 2016 15:18:11 -0700
|
||||
Subject: xen_disk: Add suse specific flush disable handling and map to QEMU
|
||||
equiv
|
||||
|
||||
Add code to read the suse specific suse-diskcache-disable-flush flag out
|
||||
of xenstore, and set the equivalent flag within QEMU.
|
||||
|
||||
Patch taken from Xen's patch queue, Olaf Hering being the original author.
|
||||
[bsc#879425]
|
||||
|
||||
[BR: minor edits to pass qemu's checkpatch script]
|
||||
[BR: With qdevification of xen-block, code has changed significantly]
|
||||
Signed-off-by: Bruce Rogers <brogers@suse.com>
|
||||
Signed-off-by: Olaf Hering <olaf@aepfle.de>
|
||||
---
|
||||
hw/block/xen-block.c | 12 ++++++++++++
|
||||
1 file changed, 12 insertions(+)
|
||||
|
||||
diff --git a/hw/block/xen-block.c b/hw/block/xen-block.c
|
||||
index 345b284d70181727f17a64d51bf2..4c7f17c253e97bd747347aca3063 100644
|
||||
--- a/hw/block/xen-block.c
|
||||
+++ b/hw/block/xen-block.c
|
||||
@@ -722,6 +722,8 @@ static XenBlockDrive *xen_block_drive_create(const char *id,
|
||||
const char *mode = qdict_get_try_str(opts, "mode");
|
||||
const char *direct_io_safe = qdict_get_try_str(opts, "direct-io-safe");
|
||||
const char *discard_enable = qdict_get_try_str(opts, "discard-enable");
|
||||
+ const char *suse_diskcache_disable_flush = qdict_get_try_str(opts,
|
||||
+ "suse-diskcache-disable-flush");
|
||||
char *driver = NULL;
|
||||
char *filename = NULL;
|
||||
XenBlockDrive *drive = NULL;
|
||||
@@ -802,6 +804,16 @@ static XenBlockDrive *xen_block_drive_create(const char *id,
|
||||
}
|
||||
}
|
||||
|
||||
+ if (suse_diskcache_disable_flush) {
|
||||
+ unsigned long value;
|
||||
+ if (!qemu_strtoul(suse_diskcache_disable_flush, NULL, 2, &value) && !!value) {
|
||||
+ QDict *cache_qdict = qdict_new();
|
||||
+
|
||||
+ qdict_put_bool(cache_qdict, "no-flush", true);
|
||||
+ qdict_put_obj(file_layer, "cache", QOBJECT(cache_qdict));
|
||||
+ }
|
||||
+ }
|
||||
+
|
||||
/*
|
||||
* It is necessary to turn file locking off as an emulated device
|
||||
* may have already opened the same image file.
|
Loading…
Reference in New Issue
Block a user