Compare commits

..

6 Commits

Author SHA1 Message Date
Lukas Greve
39ae3389ca Merge branch 'main' of ssh://git.phyllo.me:29418/roots/wiki 2025-11-09 12:03:58 +01:00
Lukas Greve
f8afa6d678 add bold 2025-11-09 12:01:24 +01:00
Lukas Greve
da0caef5f9 add information related to different UEFI firmware 2025-11-09 12:01:19 +01:00
Lukas Greve
e3feb907f4 add information related to libkms 2025-11-09 12:00:54 +01:00
Lukas Greve
b10a509aff add XML domain definitions 2025-11-09 12:00:32 +01:00
Lukas Greve
fc13f10dfd Some refactoring of the home page 2025-11-08 15:28:44 +01:00
6 changed files with 104 additions and 82 deletions

2
.gitignore vendored
View File

@@ -0,0 +1,2 @@
.aider*

View File

@@ -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
View File

@@ -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)

View File

@@ -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/)*

View File

@@ -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.

View File

@@ -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