diff options
author | Alyssa Ross <hi@alyssa.is> | 2024-01-16 00:19:27 +0100 |
---|---|---|
committer | Alyssa Ross <hi@alyssa.is> | 2024-01-16 00:19:27 +0100 |
commit | a15334ad7b05502ec522abe3afcbe7871205fa7b (patch) | |
tree | 0e0dc1ac898fefbf5f04c13dfc1f5ade912dd023 | |
parent | 4876cc29aad9f6a0229e6d246f1fc0ba67335928 (diff) | |
download | www-a15334ad7b05502ec522abe3afcbe7871205fa7b.tar www-a15334ad7b05502ec522abe3afcbe7871205fa7b.tar.gz www-a15334ad7b05502ec522abe3afcbe7871205fa7b.tar.bz2 www-a15334ad7b05502ec522abe3afcbe7871205fa7b.tar.lz www-a15334ad7b05502ec522abe3afcbe7871205fa7b.tar.xz www-a15334ad7b05502ec522abe3afcbe7871205fa7b.tar.zst www-a15334ad7b05502ec522abe3afcbe7871205fa7b.zip |
software/cloud-hypervisor: init
Signed-off-by: Alyssa Ross <hi@alyssa.is>
-rw-r--r-- | index.html | 7 | ||||
-rw-r--r-- | software/cloud-hypervisor/index.html | 143 | ||||
-rw-r--r-- | software/index.html | 41 |
3 files changed, 191 insertions, 0 deletions
diff --git a/index.html b/index.html index 6065ed0..d2e0e94 100644 --- a/index.html +++ b/index.html @@ -68,6 +68,13 @@ initiative by the Digital Single Market of the European Commission. <li><a href="bibliography.html">Bibliography</a> </ul> + <h2>Published software</h2> + + <ul> + <li><a href="software/cloud-hypervisor">Cloud Hypervisor with + virtio-gpu support</a> + </ul> + <h2>Development progress</h2> <p> diff --git a/software/cloud-hypervisor/index.html b/software/cloud-hypervisor/index.html new file mode 100644 index 0000000..1b0a6ed --- /dev/null +++ b/software/cloud-hypervisor/index.html @@ -0,0 +1,143 @@ +<!doctype html> +<!-- SPDX-FileCopyrightText: 2019-2020, 2022, 2024 Alyssa Ross <hi@alyssa.is> --> +<!-- SPDX-License-Identifier: CC-BY-SA-4.0 OR GFDL-1.3-no-invariants-or-later --> +<!-- SPDX-License-Identifier: GPL-3.0-or-later --> +<html lang="en"> + +<head> + +<meta charset="utf-8"> +<meta name="viewport" content="width=device-width,initial-scale=1"> + +<link rel="icon" href="../..logo/logo_html.svg"> +<link rel="stylesheet" href="../../style.css"> + +<title>Cloud Hypervisor with virtio-gpu support</title> + +<body> + +<nav> + <a href="../..">Spectrum</a> +</nav> + +<h1>Cloud Hypervisor with virtio-gpu support</h1> + +<p> +This is a patchset for <a href="https://cloudhypervisor.org/">Cloud +Hypervisor</a> support providing a virtio-gpu device to guests, +using <a href="https://crosvm.dev/">crosvm's</a> virtio-gpu +implementation +over <a href="https://www.qemu.org/docs/master/interop/vhost-user.html">vhost-user</a>. + +<p> +If this patchset is useful to you, please consider donating to support +its continued development via +either <a href="https://github.com/sponsors/alyssais">GitHub +Sponsors</a> or <a href="https://liberapay.com/qyliss">LiberaPay</a>. + +<p> +The patches as developed as part of <a href="../..">Spectrum</a>, a +compartmentalized desktop operating system project. + +<h2>Building</h2> + +It’s necessary to patch both Cloud Hypervisor itself, and +the <a href="https://github.com/rust-vmm/vhost/tree/main/vhost">vhost</a> +crate. The Cloud Hypervisor patches expect to find the patched vhost +source tree under the same parent directory as Cloud Hypervisor’s. + +<ol> + <li> + Clone the repositories + for <a href="https://github.com/cloud-hypervisor/cloud-hypervisor">Cloud + Hypervisor</a> + and <a href="https://github.com/rust-vmm/vhost">vhost</a>. Make + sure the revision of the vhost repository you have checked out + contains the versions of the vhost and vhost-user-backend crates + expected by your version of Cloud Hypervisor. + + <li> + Download and apply the patches for the correct versions of Cloud + Hypervisor and vhost. + + <li> + Use <code>cargo build</code> in the Cloud Hypervisor source tree as + normal. +</ol> + +<h2>Usage example</h2> + +Start the crosvm GPU device: + +<pre><code>crosvm device gpu --socket gpu.sock</code></pre> + +Connect to the GPU device with cloud-hypervisor: + +<pre><code>cloud-hypervisor --gpu socket=gpu.sock …</code></pre> + +<h2>Downloads</h2> + +<ol reversed style="list-style-type: none; padding-left: 0;"> + <li><a href="https://spectrum-os.org/software/cloud-hypervisor/cloud-hypervisor-37.0-spectrum0-patches.tar.xz">cloud-hypervisor-37.0-spectrum0-patches.tar.xz</a> +</ol> + +<h2>Contributing</h2> + +<p> +The patches are maintained +in <a href="https://spectrum-os.org/git/spectrum">Spectrum’s git +repository</a>. Please refer to the documentation +for <a href="https://spectrum-os.org/doc/contributing/">contributing +to Spectrum</a>. + +<h2>Can these patches be upstreamed?</h2> + +<p> +I don’t think so. The Cloud Hypervisor developers +are <a href="https://github.com/cloud-hypervisor/cloud-hypervisor/issues/3212#issuecomment-937823742">not +very interested</a> in GPU support — although perhaps an +implementation that was just a vfio-user frontend implementation, +deletaging all of the complexity of rendering, input handling, etc. to +another process would be light enough to overcome that — but on top of +that, communicating with crosvm’s GPU device requires using +non-standard commands that are not part of +the <a href="https://www.qemu.org/docs/master/interop/vhost-user.html">vhost-user +specification</a>. + +<p> +It’s possible that, in future, it might be possible to use an external +virtual GPU device with an unmodified Cloud Hypervisor +using <a href="https://spdk.io/news/2021/05/04/vfio-user/">vfio-user</a> +or <a href="https://lore.kernel.org/qemu-devel/20230901110018.3704459-1-alex.bennee@linaro.org/"><code>VHOST_USER_PROTOCOL_F_PROBE</code></a>, +or that at least the custom vhost-user commands could be standardized. + +<p> +Other Cloud Hypervisor work is +regularly <a href="https://github.com/cloud-hypervisor/cloud-hypervisor/commits?author=alyssais">upstreamed</a> +as part of the Spectrum project. + +<h2>Bug reports and other questions</h2> + +<p> +Bug reports for and other questions about the patchset are welcome! +You can send mail to +the <a href="mailto:discuss@spectrum-os.org">discuss@spectrum-os.org</a> +<a href="https://spectrum-os.org/doc/contributing/communication.html#mailing-lists">mailing +list</a>, or ask in the +Spectrum <a href="https://spectrum-os.org/doc/contributing/communication.html#chat">Matrix +chat</a>. + +<hr> + +<p> +<small>Permission is granted to copy, distribute and/or modify this +document under either the terms of the +<a href="https://creativecommons.org/licenses/by-sa/4.0/">Creative +Commons Attribution-ShareAlike 4.0 International License</a>, or the +<a href="https://www.gnu.org/licenses/fdl-1.3.html">GNU Free +Documentation License, Version 1.3</a> or any later version published +by the Free Software Foundation; with no Invariant Sections, no +Front-Cover Texts, and no Back-Cover Texts.</small> + +<p> +<a href="impressum.html" lang="de"><small>Impressum</small></a> diff --git a/software/index.html b/software/index.html new file mode 100644 index 0000000..7f8e6fb --- /dev/null +++ b/software/index.html @@ -0,0 +1,41 @@ +<!doctype html> +<!-- SPDX-FileCopyrightText: 2019-2020, 2022, 2024 Alyssa Ross <hi@alyssa.is> --> +<!-- SPDX-License-Identifier: CC-BY-SA-4.0 OR GFDL-1.3-no-invariants-or-later --> +<!-- SPDX-License-Identifier: GPL-3.0-or-later --> +<html lang="en"> + +<head> + +<meta charset="utf-8"> +<meta name="viewport" content="width=device-width,initial-scale=1"> + +<link rel="icon" href="..logo/logo_html.svg"> +<link rel="stylesheet" href="../style.css"> + +<title>Cloud Hypervisor with virtio-gpu support</title> + +<body> + +<nav> + <a href="..">Spectrum</a> +</nav> + +<h1>Spectrum software</h1> + +<ul> + <li><a href="cloud-hypervisor">Cloud Hypervisor with virtio-gpu + support</a> +</ul> + +<p> +<small>Permission is granted to copy, distribute and/or modify this +document under either the terms of the +<a href="https://creativecommons.org/licenses/by-sa/4.0/">Creative +Commons Attribution-ShareAlike 4.0 International License</a>, or the +<a href="https://www.gnu.org/licenses/fdl-1.3.html">GNU Free +Documentation License, Version 1.3</a> or any later version published +by the Free Software Foundation; with no Invariant Sections, no +Front-Cover Texts, and no Back-Cover Texts.</small> + +<p> +<a href="impressum.html" lang="de"><small>Impressum</small></a> |