Compare commits
6 Commits
11bc73d821
...
39ae3389ca
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
39ae3389ca | ||
|
|
f8afa6d678 | ||
|
|
da0caef5f9 | ||
|
|
e3feb907f4 | ||
|
|
b10a509aff | ||
|
|
fc13f10dfd |
2
.gitignore
vendored
2
.gitignore
vendored
@@ -0,0 +1,2 @@
|
||||
|
||||
.aider*
|
||||
|
||||
@@ -115,7 +115,7 @@ When the virtual machine is launched, a specific D-Bus address will be choosen,
|
||||
|
||||
A third-party tool is required to interact to the D-Bus display.
|
||||
|
||||
[Libmks](https://gitlab.gnome.org/GNOME/libmks), which is under development, is such a tool.
|
||||
[**Libmks**](https://gitlab.gnome.org/GNOME/libmks), which is under development, is such a tool.
|
||||
|
||||
> Due to [a bug](https://gitlab.gnome.org/GNOME/libmks/-/issues/16), it is currenlty only possible to connect a D-Bus display with plain QEMU
|
||||
{.is-warning}
|
||||
|
||||
86
home.md
86
home.md
@@ -10,80 +10,76 @@ dateCreated: 2021-06-19T09:29:20.593Z
|
||||
|
||||
# The Phyllome OS wiki
|
||||
|
||||
In this wiki, you will find guides about [how to install](#install) and [use](#get-started) Phyllome OS, as well as information on the [underlying technologies](#references), Phyllome OS [itself](#about-phyllome-os) and the surrounding [project](#about-the-project).
|
||||
Welcome to the Phyllome OS documentation! This wiki contains guides for installing, using, and extending Phyllome OS, as well as information about the underlying virtualization technologies.
|
||||
|
||||
## Install
|
||||
## Installation
|
||||
|
||||
*How to install Phyllome OS*
|
||||
|
||||
- [Prepare the target computer](/deploy/prepare)
|
||||
- [Create an installation medium](/deploy/medium)
|
||||
- [Install](/deploy/install)
|
||||
- [Install Phyllome OS](/deploy/install)
|
||||
|
||||
## Get started
|
||||
## Using Phyllome OS
|
||||
|
||||
*How to use Phyllome OS and deploy your favorite operating system inside Phyllome OS*
|
||||
*Deploy and manage guest operating systems*
|
||||
|
||||
- [First setup and beyond](/getstarted/firstsetup)
|
||||
### Linux Guests
|
||||
- [Install a Linux distribution through the network](/getstarted/install-guest)
|
||||
- [Automatically provision a Linux distribution](/getstarted/virt-install)
|
||||
|
||||
### Guests
|
||||
### Windows Guests
|
||||
- [Install ReactOS manually](/getstarted/reactos)
|
||||
|
||||
- **Linux**:tm:
|
||||
- [Install a Linux distribution through the network](/getstarted/install-guest)
|
||||
- [Automatically provision a Linux distribution](/getstarted/virt-install)
|
||||
|
||||
- **Windows**:tm:
|
||||
- [Install ReactOS manually](/getstarted/reactos)
|
||||
|
||||
## Go further
|
||||
## Advanced Topics
|
||||
|
||||
*Go further with Phyllome OS*
|
||||
|
||||
- [Resize](/gofurther/resize) a virtual disk
|
||||
- [Encrypt](/gofurther/encrypt) a directory
|
||||
- [Resize virtual disks](/gofurther/resize)
|
||||
- [Encrypt directories](/gofurther/encrypt)
|
||||
|
||||
### Sharing resources with a guest system
|
||||
### Sharing Resources with Guests
|
||||
- [Share directories](/gofurther/virtiofs)
|
||||
- [Share input devices](/gofurther/evdev)
|
||||
- [Share virtual GPUs](/gofurther/vfio-mdev)
|
||||
- [Share physical devices](/gofurther/vfio-pci)
|
||||
|
||||
- [Share a directory](/gofurther/virtiofs)
|
||||
- [Share an input device](/gofurther/evdev)
|
||||
- [Share a virtual GPU](/gofurther/vfio-mdev)
|
||||
- [Share a physical device](/gofurther/vfio-pci)
|
||||
## Technical References
|
||||
|
||||
## Technical references
|
||||
*Information about virtualization technologies*
|
||||
|
||||
*Information about related technologies*
|
||||
- [Virtualization lexicon](/virt/lexicon)
|
||||
- [A short history of virtualization](/virt/history)
|
||||
- [Virtualization tools](/virt/tools)
|
||||
|
||||
- [Lexicon](/virt/lexicon)
|
||||
- [A very short history of virtualization](/virt/history)
|
||||
- [Tools related to virtualization](/virt/tools)
|
||||
|
||||
### Host virtualization software
|
||||
|
||||
- [Linux Kernel modules](/virt/host/modules) related to virtualization
|
||||
- [Virtualization-related paths](/virt/host/paths) on Phyllome OS
|
||||
- [A libvirt XML file](/virt/host/xml)
|
||||
|
||||
### Guest hardware
|
||||
### Host Virtualization
|
||||
- [Linux Kernel modules](/virt/host/modules)
|
||||
- [Virtualization paths](/virt/host/paths)
|
||||
- [Libvirt XML examples](/virt/host/xml)
|
||||
|
||||
### Guest Hardware
|
||||
- [Virtual hardware definition](/virt/vm)
|
||||
- [Chipset](/virt/vm/chipset)
|
||||
- [Firmware](/virt/vm/firmware)
|
||||
- [Graphic card](/virt/vm/graphic-card)
|
||||
- [Virtual I/O device](/virt/vm/virtio)
|
||||
- [Display](/virt/vm/display)
|
||||
- [Chipset](/virt/vm/chipset)
|
||||
- [Firmware](/virt/vm/firmware)
|
||||
- [Graphic card](/virt/vm/graphic-card)
|
||||
- [Virtual I/O devices](/virt/vm/virtio)
|
||||
- [Display](/virt/vm/display)
|
||||
|
||||
### Guest software
|
||||
|
||||
- [Guest operating systems support](/virt/guest.md)
|
||||
### Guest Software
|
||||
- [Guest OS support](/virt/guest.md)
|
||||
|
||||
## About Phyllome OS
|
||||
|
||||
- [Context](/phyllomeos/context) and comparaison
|
||||
*Learn more about the project*
|
||||
|
||||
- [Context and comparison](/phyllomeos/context)
|
||||
- [Architecture](/phyllomeos/purpose)
|
||||
- [Roadmap](/phyllomeos/roadmap)
|
||||
- [FAQ](/phyllomeos/faq)
|
||||
|
||||
## About the project
|
||||
## About the Project
|
||||
|
||||
*Contribute to Phyllome OS*
|
||||
|
||||
- [How to contribute](/project/contribute)
|
||||
- [How to join](/project/join)
|
||||
|
||||
@@ -10,7 +10,7 @@ dateCreated: 2021-11-13T11:56:47.463Z
|
||||
|
||||
# Virtual chipsets
|
||||
|
||||
Just as with physical computers, virtual machines are built around a central chipset.
|
||||
Just as with physical computers, virtual machines are built around a central chipset or machine type.
|
||||
|
||||
These virtual chipsets are routinely updated. If no version of a chipset is defined, it is the latest that will be used.
|
||||
|
||||
@@ -40,10 +40,34 @@ There are three main chipsets, `i440fx`, `Q35` and the more recent `virt`.
|
||||
|
||||
The `i440fx` virtual chipset is a legacy chipset, compatible with PCI.
|
||||
|
||||
```
|
||||
<domain type='kvm'>
|
||||
[...]
|
||||
<os firmware="efi">
|
||||
<type arch="x86_64" machine="pc-i440fx">hvm</type>
|
||||
</os>
|
||||
[...]
|
||||
</domain>
|
||||
```
|
||||
|
||||
There are revisions of the `i440fx` chipset, such as `pc-i440fx-10.1`. If left undefined, the latest locally available version will be used.
|
||||
|
||||
### Q35
|
||||
|
||||
The `Q35` virtual chipset is based on a modern chipset, compatible with PCI-Express.
|
||||
|
||||
```
|
||||
<domain type='kvm'>
|
||||
[...]
|
||||
<os firmware="efi">
|
||||
<type arch="x86_64" machine="pc-q35">hvm</type>
|
||||
</os>
|
||||
[...]
|
||||
</domain>
|
||||
```
|
||||
|
||||
There are also revisions for the `Q35` chipset. If left undefined, the latest locally available version will be used.
|
||||
|
||||
> Did you know that the Open Virtual Machine Firmware (OVMF), which is based on [TianoCore](https://www.tianocore.org/), is the default firmware for EFI-based virtual machines? Its configuration utility can be accessed using the <kbd>Esc</kbd> key.
|
||||
{.is-info}
|
||||
|
||||
@@ -58,7 +82,7 @@ The `virt` virtual chipset is the most modern chipset, compatible with PCI-Expre
|
||||
## Resources
|
||||
|
||||
* [Official documentation](https://wiki.qemu.org/Features/Q35) on Q35
|
||||
|
||||
- [QEMU machine types and compatibility blog post](https://people.redhat.com/~cohuck/2022/01/05/qemu-machine-types.html), by Cornelia Huck
|
||||
---
|
||||
|
||||
*[**Go to parent page**](https://wiki.phyllo.me/)*
|
||||
@@ -12,11 +12,11 @@ dateCreated: 2025-11-08T10:42:41.620Z
|
||||
|
||||
There are multiple displays devices available, or screens where one can access the virtual machine graphical contents.
|
||||
|
||||
## Dbus display
|
||||
## D-Bus display
|
||||
|
||||
The Dbus display is the newest of the bunch.
|
||||
The D-Bus display is the newest of the bunch. It exports the VM display through D-Bus and "*allow out-of-process UIs, remote protocol servers or other interactive display usages*."
|
||||
|
||||
### libkms
|
||||
### libkms library
|
||||
|
||||
A project called [**libmks**](https://gitlab.gnome.org/GNOME/libmks) is offering an implementation with `libvirt` and `QEMU`.
|
||||
|
||||
@@ -33,11 +33,11 @@ Key components:
|
||||
5. **MksPaintable** - A GDK paintable object that receives rendering updates from QEMU, supporting both traditional framebuffer updates and DMA-BUF based updates for better performance.
|
||||
|
||||
The library uses D-Bus communication with QEMU's display interface to:
|
||||
|
||||
- Attach to VM screens and receive visual updates
|
||||
- Send keyboard/mouse/touch events to the VM
|
||||
- Configure screen properties
|
||||
- Handle clipboard sharing
|
||||
|
||||
It's designed to work with QEMU's D-Bus display interface and provides a GTK-friendly API for integrating VM displays into GTK applications. The library supports both synchronous and asynchronous operations for all its functions.
|
||||
|
||||
The project uses GTK 4, GIO, and various GTK components for the UI integration, with D-Bus for communication with QEMU.
|
||||
@@ -22,36 +22,36 @@ Virtual devices, including virtual chipsets, are shipping alongside platform fir
|
||||
|
||||
It is based on the [TianoCore](https://www.tianocore.org/) project, which provides an open-source implementation of a platform firmware that follows UEFI specifications.
|
||||
|
||||
It is the default method to boot UEFI-based operating systems in a virtual machine.
|
||||
It is the default method to boot UEFI-based operating systems in a virtual machine, and ddoes not support Compatibility Support Module (CSM). A virtual machine booting x86 BIOS won't be able to boot with OVMF.
|
||||
|
||||
Under Fedora-based systems such as Phyllome, firmware that can be used by virtual machines are stored in the following directory `/usr/share/edk2/ovmf`
|
||||
|
||||
|
||||
| Name | Feature |
|
||||
| :-- | --: |
|
||||
| OVMF_CODE.fd | |
|
||||
| OVMF_VARS.fd | |
|
||||
| OVMF_CODE_4M.qcow2 | |
|
||||
| OVMF_VARS_4M.qcow2 | |
|
||||
| OVMF_CODE_4M.secboot.pcrlock | |
|
||||
| OVMF_CODE_4M.secboot.qcow2 | |
|
||||
| OVMF_VARS_4M.secboot.qcow2 | |
|
||||
| OVMF_CODE.cc.fd | |
|
||||
| OVMF_CODE.secboot.fd | |
|
||||
| OVMF_CODE.secboot.pcrlock | |
|
||||
| OVMF_VARS.secboot.fd | |
|
||||
| OVMF.igvm | |
|
||||
| OVMF.qemuvars.fd | |
|
||||
| OVMF.stateless.fd | |
|
||||
| OVMF.stateless.secboot.fd | |
|
||||
| OVMF.stateless.secboot.pcrlock | |
|
||||
| OVMF.amdsev.fd | |
|
||||
| OVMF.inteltdx.fd | |
|
||||
| OVMF.inteltdx.secboot.fd | |
|
||||
|
||||
## MicroVM
|
||||
| Name | Description |
|
||||
| :-- | :--: |
|
||||
| OVMF_CODE.fd | 2MB default OVMF firmware. Used by default |
|
||||
| OVMF_VARS.fd | Variables store |
|
||||
| OVMF_CODE.secboot.fd | 2MB firmware with secure boot enabled |
|
||||
| OVMF_VARS.secboot.fd | Firmware variables with secure boot enabled |
|
||||
| OVMF_CODE.secboot.pcrlock | Firmware with secure boot and [PCR locking](https://www.freedesktop.org/software/systemd/man/257/systemd-pcrlock.html) |
|
||||
| OVMF_CODE_4M.qcow2 | 4MB firmware in qcow2 format for virtualization |
|
||||
| OVMF_VARS_4M.qcow2 | 4MB variable store in qcow2 format for virtualization |
|
||||
| OVMF_CODE_4M.secboot.pcrlock | 4MB firmware with secure boot and PCR locking |
|
||||
| OVMF_CODE_4M.secboot.qcow2 | 4MB firmware with secure boot in qcow2 format |
|
||||
| OVMF_VARS_4M.secboot.qcow2 | 4MB variable store with secure boot in qcow2 format |
|
||||
| OVMF_CODE.cc.fd | Firmware code with confidential computing support |
|
||||
| OVMF.qemuvars.fd | QEMU-specific firmware variables |
|
||||
| OVMF.stateless.fd | Stateless firmware without persistent storage |
|
||||
| OVMF.stateless.secboot.fd | Stateless firmware with secure boot |
|
||||
| OVMF.stateless.secboot.pcrlock | Stateless firmware with secure boot and PCR locking |
|
||||
| OVMF.amdsev.fd | [AMD SEV](https://docs.kernel.org/virt/kvm/x86/amd-memory-encryption.html) (Secure Encrypted Virtualization) support. Allow the memory contents of a VM to be transparently encrypted with a key unique to that VM |
|
||||
| OVMF.igvm | Firmware with [IGVM loader](https://github.com/roy-hopkins/buildigvm). To be used alongside SEV platforms |
|
||||
| OVMF.inteltdx.fd | [Intel Trust Domain Extensions](https://en.wikipedia.org/wiki/Trust_Domain_Extensions) (TDX) support |
|
||||
| OVMF.inteltdx.secboot.fd | TDX with secure boot support |
|
||||
|
||||
### Resources :
|
||||
|
||||
- [OVMF 2015 whitepaper](https://www.linux-kvm.org/downloads/lersek/ovmf-whitepaper-c770f8c.txt)
|
||||
|
||||
## Rust Hypervisor Firmware
|
||||
|
||||
|
||||
Reference in New Issue
Block a user