add links, tiny fixes

This commit is contained in:
lukas 2023-06-20 17:04:36 -05:00
parent b9d6443256
commit abcee5f539
4 changed files with 8 additions and 77 deletions

View File

@ -33,7 +33,7 @@ When it comes to its longevity and number of variants, the UNIX family is by far
### Windows-family
* **Windows**
* Windows and [ReactOS](/virt/guest/reactos)
* Windows and ReactOS
### Independent
@ -50,7 +50,7 @@ When it comes to its longevity and number of variants, the UNIX family is by far
| | Linux | Darwin | Windows |
| :- | :-: | :-: | :-: |
| *Chipset* | `i440fx` `Q35` `virt` | `Q35` | `i440fx` `Q35` `virt` |
| *Platform Firmware* | `SeaBIOS` `OVMF` `RHF` [^1] | `OVMF` | `SeaBIOS` `OVMF` `RHF` |
| *Platform firmware* | [`SeaBIOS`](/virt/vm/firmware#seabios) [`OVMF`](/virt/vm/firmware#ovmf) [`RHF`](/virt/vm/firmware#rust-hypervisor-firmware) [^1] | [`OVMF`](/virt/vm/firmware#ovmf) | [`SeaBIOS`](/virt/vm/firmware#seabios) [`OVMF`](/virt/vm/firmware#ovmf) [`RHF`](/virt/vm/firmware#rust-hypervisor-firmware) |
| *`virtio-gpu`* | **Yes** | No | No |
| *`virtio-video`* | *Upcoming* | No | No |
| *`virtio-snd`* | *Upcoming* | No | No |

View File

@ -12,22 +12,22 @@ dateCreated: 2022-01-25T14:50:10.751Z
Virtual devices, including virtual chipsets, are shipping alongside platform firmware.
> ***Definition**: Firmware are software that are tightly integrated with the hardware. Almost every devices are shipping with some kind of firmware associated to it. For instance, motherboards include such programs, which in their case is tasked to properly boot hardware devices such as RAM modules, check their state and make them ready-to-use by an operating system.*
> ***Definition**: Firmware are software that are tightly integrated with the hardware. Almost every devices are shipping with some kind of firmware associated to it. For instance, motherboards include such programs, which in their case is tasked to properly boot hardware devices such as RAM modules, check their state and make them ready-to-use by an operating system*
{.is-info}
## Available platform firmware for virtual machines
### SeaBIOS
[SeaBIOS](https://www.seabios.org/SeaBIOS) is an implementation of a x86 BIOS which relies on [Coreboot](https://www.coreboot.org/) and can be used to boot virtual machines. It is incompatible with UEFI but, as a result, is simpler.
[SeaBIOS](https://www.seabios.org/SeaBIOS) is an implementation of a x86 BIOS which relies on [Coreboot](https://www.coreboot.org/) and can be used to boot virtual machines. It is incompatible with UEFI. It is also simpler.
### OVMF
[OVMF](https://github.com/tianocore/tianocore.github.io/wiki/OVMF), which stands for Open Virtual Machine Firmware, is a UEFI compatible firmware. It is part of the larger [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.
[OVMF](https://github.com/tianocore/tianocore.github.io/wiki/OVMF), which stands for Open Virtual Machine Firmware, is a UEFI-compatible firmware. It is based on the larger [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.
### Rust Hypervisor Firmware
The [Rust Hypervisor Firmware](https://github.com/cloud-hypervisor/rust-hypervisor-firmware) (RHF) is a UEFI compatible firmware. It is focused on simplicity and performance and is designed for virtual workloads. It is tightly integrated with the Cloud Hypervisor.
The [Rust Hypervisor Firmware](https://github.com/cloud-hypervisor/rust-hypervisor-firmware) (RHF) is a UEFI-compatible firmware. It is focused on simplicity and performance and is designed for virtual workloads. It is tightly integrated with the Cloud Hypervisor.
## Comparison
@ -38,7 +38,7 @@ The [Rust Hypervisor Firmware](https://github.com/cloud-hypervisor/rust-hypervis
| *Secureboot* | No | **Yes** | **Yes** |
| *Chipset support* | [`i440fx`](/virt/vm/chipset#i440fx) / [`Q35`](/virt/vm/chipset#q35) | [`i440fx`](/virt/vm/chipset#i440fx) / [`Q35`](/virt/vm/chipset#q35) | [`Q35`](/virt/vm/chipset#q35)? / [`virt`](/virt/vm/chipset#virt) |
| *Guest support* | **Linux** / **Windows** | **Linux** / **Darwin** / **Windows** | **Linux** / **Windows** |
| *Virtual Function I/O* | No | Yes | Yes |
| *Virtual Function I/O (VFIO)* | No | Yes | Yes |
---

View File

@ -16,7 +16,7 @@ Phyllome leverages 3D acceleration within guest operating systems extensively, i
* **vfio-mdev** : Sharing a fraction of a compatible physical GPU such as those using [single-root input/output virtualization](https://en.wikipedia.org/wiki/Single-root_input/output_virtualization) (SR-IOV), via the `vfio-mdev` driver
* **vfio-gpu** : Using some capabilities of the host GPU, via the `vfio-gpu` driver, which creates a virtual GPU as is used in Chromium OS and Spectrum OS
| Description | vfio-pci | vfio-mdev | vfio-gpu |
| Description | `vfio-pci` | `vfio-mdev` | `vfio-gpu` |
|---|---|---|---|
| *Performance* | Near-native performance and full features set | Near-native performance and full features set | Degraded performance and limited features set |
| *Guests support* | UNIX and non-UNIX guests | UNIX and non-UNIX guests | Works only on selected UNIX guests |

View File

@ -1,69 +0,0 @@
---
title: Input devices
description: How to share input devices with a virtual machine
published: true
date: 2022-08-02T09:59:31.526Z
tags:
editor: markdown
dateCreated: 2022-08-01T10:42:14.864Z
---
# Input devices
Input devices such as keyboards and mice are a must to directly interact with a virtual machine. There are multiple ways to share an input device with your virtual machine.
## Summary
* *to-be done. Add table here*.
## Methods
### Evdev
Event devices (evdev) is a generic input event interface available in the [Linux](https://www.kernel.org/doc/Documentation/input/input.txt) and FreeBDS kernels.
* Identify available input devices under `/dev/input/by-path/` or `/dev/input/by-id/` and look for devices that contains the string *event* in their name.
```
ls /dev/input/*
```
```
/dev/input/by-path:
pci-0000:07:00.0-event-mouse
pci-0000:09:00.0-mouse
pci-0000:07:00.0-mouse platform-i8042-serio-0-event-kbd
pci-0000:08:00.0-event-kbd platform-i8042-serio-1-event-mouse
pci-0000:09:00.0-event-mouse platform-i8042-serio-1-mouse
```
* Check if it's the correct device using the following command and typing or clicking on your device
```
sudo cat /dev/input/by-path/pci-0000:08:00.0-event-kbd
```
* If gibberish symbols appear on your console as you type, it means that the device has been correctly identified, and that you can <kbd>Ctrl+Z</kbd>
```
<EFBFBD><EFBFBD>b<EFBFBD><EFBFBD><EFBFBD><EFBFBD>b<EFBFBD><EFBFBD><EFBFBD><EFBFBD>b<EFBFBD>!<21><>b<EFBFBD><62><EFBFBD>b<EFBFBD><62> <20><>b<EFBFBD><62><EFBFBD><EFBFBD>b<EFBFBD><62><EFBFBD><EFBFBD>b<EFBFBD><62><EFBFBD><EFBFBD>b<EFBFBD><62><EFBFBD><EFBFBD>b<EFBFBD><62>fdsa<73><61>b<EFBFBD>( <20><>b<EFBFBD>(<28><>b!<21><>b<EFBFBD><62>bR<62><52>bR<62><52>bW<62><57>bW<62><57>b<EFBFBD>!<21><>b<EFBFBD>f<EFBFBD><66>b4 <20><>b4<62><34>bV<62><56>bV<62><56>bX<62><58>bXdsa<73><61>b!: !<21><>b!: <09><>b>: <20><>b>: <09><>b<EFBFBD>
<EFBFBD><EFBFBD>b<EFBFBD>
<EFBFBD><EFBFBD>b<EFBFBD>y
<EFBFBD><EFBFBD>b<EFBFBD>y
```
Edit the virtual machine's definition and replace `MOUSE_NAME` and `KEYBOARD_NAME` with the previously identified devices.
```
<input type="evdev">
<source dev="/dev/input/by-path/MOUSE_NAME"/>
</input>
<input type="evdev">
<source dev="/dev/input/by-path/KEYBOARD_NAME" grab="all" repeat="on"/>
</input>
```
* In-depth [Passthrough Post article](https://passthroughpo.st/using-evdev-passthrough-seamless-vm-input/) about evdev.
---
*[**Go to parent page**](https://wiki.phyllo.me/)*