From nobody Mon Feb 9 00:20:44 2026
Delivered-To: importer@patchew.org
Received-SPF: pass (zohomail.com: domain of redhat.com designates
170.10.133.124 as permitted sender) client-ip=170.10.133.124;
envelope-from=libvir-list-bounces@redhat.com;
helo=us-smtp-delivery-124.mimecast.com;
Authentication-Results: mx.zohomail.com;
dkim=pass;
spf=pass (zohomail.com: domain of redhat.com designates 170.10.133.124 as
permitted sender) smtp.mailfrom=libvir-list-bounces@redhat.com;
dmarc=pass(p=none dis=none) header.from=redhat.com
ARC-Seal: i=1; a=rsa-sha256; t=1641322520; cv=none;
d=zohomail.com; s=zohoarc;
b=VpUX6SJoXZ0fNAOYrj4lVQUJk6oPgo0yTsrrt4ylUSwEU6s+7EJfMMw+7M/P5j6PUX+OCHQiRtIHYnIEUDSizlVyUf2kV9yjX1aFe9WNvegNk9/J1n8oT3fYNov/sTbhRO3tPqJGEkRS2KpsLfymZDlPcRfnIMWHigdZnnQmXIg=
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com;
s=zohoarc;
t=1641322520;
h=Content-Type:Content-Transfer-Encoding:Cc:Date:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:To;
bh=7nbHdpxfl7zqJc6KNf649Viko7xIJgn5wsWznL1rE5c=;
b=khw8L+kpy7Y1huarvAj3ErCgUm/rqU/1D1Q+Mtcf5F7AsSz+6AmpBe7MzROCZ9+zBwdr9y98aJT58XjgFD38X+pwv1gixpI2ft8LGCaIJ7oM6RLsZg/VUsQxQ5pSnDSbc22dIRrK4D+ziGRdkZYYFIshdj7uwfgqNLmKr1PwAFQ=
ARC-Authentication-Results: i=1; mx.zohomail.com;
dkim=pass;
spf=pass (zohomail.com: domain of redhat.com designates 170.10.133.124 as
permitted sender) smtp.mailfrom=libvir-list-bounces@redhat.com;
dmarc=pass header.from= (p=none dis=none)
Return-Path:
Received: from us-smtp-delivery-124.mimecast.com
(us-smtp-delivery-124.mimecast.com [170.10.133.124]) by mx.zohomail.com
with SMTPS id 1641322520699147.3855363286848;
Tue, 4 Jan 2022 10:55:20 -0800 (PST)
Received: from mimecast-mx01.redhat.com (mimecast-mx01.redhat.com
[209.132.183.4]) by relay.mimecast.com with ESMTP with STARTTLS
(version=TLSv1.2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id
us-mta-227-h0eeeWdEOKmjl2-G3fC8cg-1; Tue, 04 Jan 2022 13:55:09 -0500
Received: from smtp.corp.redhat.com (int-mx05.intmail.prod.int.phx2.redhat.com
[10.5.11.15])
(using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits))
(No client certificate requested)
by mimecast-mx01.redhat.com (Postfix) with ESMTPS id 4A24961280;
Tue, 4 Jan 2022 18:55:03 +0000 (UTC)
Received: from colo-mx.corp.redhat.com
(colo-mx01.intmail.prod.int.phx2.redhat.com [10.5.11.20])
by smtp.corp.redhat.com (Postfix) with ESMTPS id 247F178A0F;
Tue, 4 Jan 2022 18:55:03 +0000 (UTC)
Received: from lists01.pubmisc.prod.ext.phx2.redhat.com
(lists01.pubmisc.prod.ext.phx2.redhat.com [10.5.19.33])
by colo-mx.corp.redhat.com (Postfix) with ESMTP id E28051806D03;
Tue, 4 Jan 2022 18:55:02 +0000 (UTC)
Received: from smtp.corp.redhat.com (int-mx08.intmail.prod.int.phx2.redhat.com
[10.5.11.23])
by lists01.pubmisc.prod.ext.phx2.redhat.com (8.13.8/8.13.8) with ESMTP
id 204It2sn013377 for ;
Tue, 4 Jan 2022 13:55:02 -0500
Received: by smtp.corp.redhat.com (Postfix)
id 4DC4C34D41; Tue, 4 Jan 2022 18:55:02 +0000 (UTC)
Received: from kinshicho.usersys.redhat.com (unknown [10.40.193.201])
by smtp.corp.redhat.com (Postfix) with ESMTPS id 1E77734D59;
Tue, 4 Jan 2022 18:54:59 +0000 (UTC)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com;
s=mimecast20190719; t=1641322519;
h=from:from:sender:sender:reply-to:subject:subject:date:date:
message-id:message-id:to:to:cc:cc:mime-version:mime-version:
content-type:content-type:
content-transfer-encoding:content-transfer-encoding:
in-reply-to:in-reply-to:references:references:list-id:list-help:
list-unsubscribe:list-subscribe:list-post;
bh=7nbHdpxfl7zqJc6KNf649Viko7xIJgn5wsWznL1rE5c=;
b=DerFBKpXcmCL+0cJZo91+nFImo5a6D892NuuJ1pEKT9bOAd8+Jvdm8mAdrHjCyJGUWhssd
QrAbZ6ClEjbFkavk0MlNwRHLUeyXVggPGN7bt/9FH7swSG9kOkKPD7K+GlPE5BFbOATq4W
pxu3nCD1KXJmMqNIqIxgZKIIHQ2p7U8=
X-MC-Unique: h0eeeWdEOKmjl2-G3fC8cg-1
From: Andrea Bolognani
To: libvir-list@redhat.com
Subject: [libvirt PATCH 15/17] docs: Add support page for libvirt on macOS
Date: Tue, 4 Jan 2022 19:52:54 +0100
Message-Id: <20220104185256.339072-16-abologna@redhat.com>
In-Reply-To: <20220104185256.339072-1-abologna@redhat.com>
References: <20220104185256.339072-1-abologna@redhat.com>
MIME-Version: 1.0
X-Scanned-By: MIMEDefang 2.84 on 10.5.11.23
X-loop: libvir-list@redhat.com
Cc: r.bolshakov@yadro.com
X-BeenThere: libvir-list@redhat.com
X-Mailman-Version: 2.1.12
Precedence: junk
List-Id: Development discussions about the libvirt library & tools
List-Unsubscribe: ,
List-Archive:
List-Post:
List-Help:
List-Subscribe: ,
Sender: libvir-list-bounces@redhat.com
Errors-To: libvir-list-bounces@redhat.com
X-Scanned-By: MIMEDefang 2.79 on 10.5.11.15
Authentication-Results: relay.mimecast.com;
auth=pass smtp.auth=CUSA124A263 smtp.mailfrom=libvir-list-bounces@redhat.com
X-Mimecast-Spam-Score: 0
X-Mimecast-Originator: redhat.com
Content-Transfer-Encoding: quoted-printable
X-ZohoMail-DKIM: pass (identity @redhat.com)
X-ZM-MESSAGEID: 1641322521525100001
Content-Type: text/plain; charset="utf-8"
From: Roman Bolshakov
Signed-off-by: Roman Bolshakov
Signed-off-by: Andrea Bolognani
---
docs/docs.html.in | 3 +
docs/index.html.in | 3 +-
docs/macos.html.in | 229 +++++++++++++++++++++++++++++++++++++++++++++
3 files changed, 234 insertions(+), 1 deletion(-)
create mode 100644 docs/macos.html.in
diff --git a/docs/docs.html.in b/docs/docs.html.in
index 8132090762..225827b693 100644
--- a/docs/docs.html.in
+++ b/docs/docs.html.in
@@ -16,6 +16,9 @@
Windows
Downloads for Windows
=20
+ macOS
+ Working with libvirt on macOS
+
Migration
Migrating guests between machines
=20
diff --git a/docs/index.html.in b/docs/index.html.in
index 2c4aa7c6d0..3c065badb7 100644
--- a/docs/index.html.in
+++ b/docs/index.html.in
@@ -28,7 +28,8 @@
LXC,
BHyve and
more
- targets Linux, FreeBSD, Windows a=
nd macOS
+ targets Linux, FreeBSD, Windows a=
nd
+ macOS
is used by many applications
Recent / forthcoming release changes
diff --git a/docs/macos.html.in b/docs/macos.html.in
new file mode 100644
index 0000000000..54c93ea2fb
--- /dev/null
+++ b/docs/macos.html.in
@@ -0,0 +1,229 @@
+
+
+
+
+ macOS support
+
+
+
+
+ Libvirt works both as client and server (for
+ "qemu" domain) on macOS High Sierra (10.13) and macOS Mojave (10=
.14)
+ since 4.7.0. Other macOS variants likely work but we neither tested =
nor
+ received reports for them.
+
+
+
+ "hvf" domain type adds support of
+ Hypervisor.framework since 4.10.0. To use "hvf" domain, QEMU must
+ be at least 2.12 and macOS must be no less than Yosemite (10.10). "h=
vf"
+ domain type is similar to "kvm" but it has less features.
+
+
+
+ Hypervisor.framework is available on your machine if the sysctl comm=
and
+ returns 1:
+
+
sysctl -n kern.hv_support
+
+
+
+
+
+ libvirt client (virsh), server (libvirtd) and development headers ca=
n be
+ installed from homebrew:
+
+
brew install libvirt
+
+ virt-manager and virt-viewer=
can be
+ installed from source via
+ Jeffrey Wildman's tap:
+
+ brew tap jeffreywildman/homebrew-virt-manager
+brew install virt-manager virt-viewer
+
+
+
+
+
+ The server can be started manually:
+
libvirtd
+ or on system boot:
+ brew services start libvirt
+
+
+ Once started, you can use virsh to work with libvirtd:
+
virsh define domain.xml
+virsh start domain
+virsh shutdown domain
+
+ For more details on virsh, please see v=
irsh
+ command reference or built-in help:
+ virsh help
+
+
+
+ Domain XML examples can be found on QEMU
+ driver page. Full reference is available on domain XML format page.
+
+
+
+ You can use virt-manager to connect to libvirtd (connection URI must=
be
+ specified on the first connection, then it'll be possible to omit it=
):
+
virt-manager -c qemu:///session
+ or, if you only need an access to the virtual display of a VM you ca=
n use
+ virt-viewer:
+ virt-viewer -c qemu:///session
+
+
+
+
+ Details on the example domain XML files, capabilities and connection
+ string syntax used for connecting to external hypervisors can be fou=
nd
+ online on hypervisor specific driver
+ pages.
+
+
+
+
+
+ TLS certificates must be placed in the correct locations, before you=
will
+ be able to connect to QEMU servers over TLS.
+
+
+
+ Information on generating TLS certificates can be found here:
+
+
+ http://wiki.libvirt.=
org/page/TLSSetup
+
+
+ The Certificate Authority (CA) certificate file must be placed in:
+
+
+
+ - ~/.cache/libvirt/pki/CA/cacert.pem
+
+
+
+ The Client certificate file must be placed in:
+
+
+
+ - ~/.cache/libvirt/pki/libvirt/clientcert.pem
+
+
+
+ The Client key file must be placed in:
+
+
+
+ - ~/.cache/libvirt/pki/libvirt/private/clientkey.pem
+
+
+
+
+ This is a list of issues that can be easily fixed and provide
+ substantial improvement of user experience:
+
+
+ -
+ virt-install doesn't work unless disks are created upfront. The re=
ason
+ is because VIR_STORAGE_VOL_CREATE_PREALLOC_METADATA sets
+ preallocate=3Dfalloc which is not supported by qemu-img on macOS.
+
+ -
+ "hvf" is not default domain type when virt-install connects to the
+ local libvirtd on macOS
+
+ -
+ QXL VGA device and SPICE display cannot be used unless QEMU is com=
piled
+ with SPICE server. The changes to build and run SPICE server on ma=
cOS
+ haven't been sent to upstream yet.
+
+ -
+ "make check" reports many failing tests on macOS. Some of the tests
+ need to be adopted to run both on Linux and macOS.
+
+ -
+ "make syntax-check" needs be fixed too, it depends on GNU version =
of
+ grep but uses system (BSD) grep.
+
+ -
+ QEMU from homebrew is compiled without USB redirection support.
+
+ -
+ CPU usage is not gathered for VMs and therefore cannot be dispalye=
d in
+ virt-manager.
+
+ -
+ libvirtd logs are noisy because some features are missing.
+
+
+
+
+
+ "hvf" is a new domain type and can't be compared to "kvm" feature-wi=
se.
+ "kvm" domain relies on QEMU backend devices implemented in Linux ker=
nel
+ such as para-virtualized vhost devices and PCI-passthrough with vfio.
+
+ Nonetheless, some of the features available in "kvm" domain can be
+ implemented in userspace for "hvf" domain.
+
+
+ -
+ Instruction emulation in "hvf" accelerator is not mature. The bugs=
are
+ tracked on QEM=
U bug
+ tracker.
+
+ -
+ Power Management notifications are not implemented, therefore gues=
ts
+ cannot respond to
+ sleep events on the host.
+
+ -
+ CPU pinning doesn't work but macOS provides
+ Thread Affinity API that can be used to implement it.
+
+ -
+ Network management is not available but macOS has an API that is u=
sed
+ by ifconfig to create bridge and tap devices. So, it should be pos=
sible
+ to implement network management and bridged networking.
+
+ -
+ Filesystem pass-through is not available.
+
+ -
+ PCI/SCSI/USB pass-through is not available.
+
+
+
+
+
+
+
+ Feedback and suggestions on changes and what else to include
+ are desired.
+
+
+
+
+
+ Use these options when following the instructions on the
+ Compiling page.
+
+
+
+./configure \
+ --without-wireshark-dissector \
+ --without-dbus
+
+
+
+
--=20
2.31.1