Le blog de Jean David TECHER, un Réunionnais à Saint-Priest/Lyon

Aller au contenu | Aller au menu | Aller à la recherche


jeudi 20 avril 2017

Virtio drivers injectés dans l'iso de Windows 10 Home (Build 1607) + Tests

Les pilotes VirtIO permettent d'améliorer les performances d'une machine virtuelle lorsqu'il s'agit du dual périphérique/pilote. Il s'agit d'une série de pilotes remplaçant les pilotes émulés nativement par qemu. Dans ce billet, une série de vidéos est proposée

  • Injection des drivers dans l'iso originelle de Windows 10 Home (Build 1607)
  • Présentation du matériel pour Qemu/KVM
  • Installation d'une machine virtuelle Windows 10 à partir de l'iso fraîchement modifiée
  • Tests de surface

1. Injection des pilotes VirtIO dans l'iso de Windows 10

Je suis parti de l'iso Win10_1607_SingleLang_French_x64.iso. Le script utilisé pour injecter les drivers se trouve ici (avec commentaires en anglais)

Tutoriel - Injection des pilotes VirtIO dans l'iso de Windows 10

2. Présentation du matériel Qemu/KVM

Je présente mon (vieux) matos pour faire mes tests sous Qemu/KVM

Hardware - Présentation du matériel

3. Test de l'iso: création d'une machine virtuelle Windows 10

On teste maintenant l'iso en créant une machine virtuelle. La connexion a lieu à distance depuis VNC. J'en profite au passage pour commenter mon installation software de Qemu/KVM.

Test de l'iso: Création d'un machine virtuelle Windows 10

4. Tests de fin

Comme dit dans la vidéo précédente, on attend le reboot de la machine pour voir si le switch vers l'écran rattaché à la carte graphique a bien eu lieu. On teste ensuite GPU-Z et CPU-Z.

Tests de fin

mercredi 12 avril 2017

[Xen 4.8.0] Windows 10 Pro 64 Bits: VGA Passthrough (HD 7970) + Xen PV Drivers 8.2.0

Video (Youtube)

Below is a video for Xen 4.8.0.


Xen 4.8.0: Virtual Machine = Win 10 Pro 64, GPU = HD 7970 ( Vga passthrough), RAM = 8GB, Xen PV Drivers 8.2.0

Configuration file

First I was convinced that I had to patch Xen so VGA Passthrough process can work. Reading Xen documentation I discovered that it was not the case. You just need to override msitranslate parameter to 0 for the GPU Card.

#################################
# Mandatory Configuration Items #
#################################
name="Windows"

########################
# Selecting Guest Type #
########################
builder='hvm'

########################
# Device-Model Options #
########################
device_model_version="qemu-xen-traditional"

# 2 Parameters listed below are optional when device_model_version is set to qemu-xen-traditional
# I keep them here as simple reminder :D
#device_model_override="/usr/lib/xen/bin/qemu-dm"
#firmware_override="/usr/lib/xen/boot/hvmloader"

##################
# CPU Allocation #
##################
vcpus = '4'

#####################
# Memory Allocation #
#####################
memory='8192'

##################################################
# Fully-virtualised (HVM) Guest Specific Options #
##################################################
boot="cd"
hap=1

###################################
# Processor and Platform Features #
###################################
#bios="rombios" # This parameter is optional and can only be set to rombios when using qemu-xen-traditional
pae=1
acpi=1
apic=1
hap=1
hpet=1

###############################
# Guest Virtual Time Controls #
###############################
localtime=1
############
#  Devices #
############
# Disks
#======
disk = [
        'phy:/dev/xenvgssd/mercury-xenvgssd-Window-10-64Bits-disk-1,xvda,w',            # Disk 1
        'file:/opt/Xen/CD_DVD/Win10_1607_SingleLang_French_x64.iso,xvdc:cdrom,r',       # CD-ROM
        ]

# Network Interface
#==================
# Notice model e1000 is supposed to be the fastest device
vif=[ 'mac=00:26:2d:23:c5:ff,bridge=xenbr0,model=e1000' ]

# PCI to Passthrough
#====================
# Notice: For Xen 4.8 I had 
# - to add rdm_policy=relaxed option for USB controllers x2 
# - to override msitranslate to 0 for my graphic card as workaround for VGA Passthrough.
#   parameter pci_msitranslate governs all PCI. Its value can be overridden by using 'msitranslate=0' to a local PCI
#   That the reason why I used it for my HD 7970 AMD Card
#   OR use pci_msitranslate=0 as global value instead of the local parameter for GPU

pci  = [ 
'01:00.0,msitranslate=0',       # VGA compatible controller: Advanced Micro Devices [AMD] nee ATI Tahiti XT [Radeon HD 7970]
'01:00.1,msitranslate=0',       # Audio device: Advanced Micro Devices [AMD] nee ATI Tahiti XT HDMI Audio [Radeon HD 7970 Series]
'00:1d.0,rdm_policy=relaxed',   # USB controller: Intel Corporation 6 Series/C200 Series Chipset Family USB Enhanced Host Controller #1 (rev 05) # USB CONTROLLER - PC FRONT
'00:1a.0,rdm_policy=relaxed'    # USB controller: Intel Corporation 6 Series/C200 Series Chipset Family USB Enhanced Host Controller #2 (rev 05) # USB CONTROLLER - PC BACK 
]

e820_host=1

# Vga Passthrough
#=================
# Quoted from Xen documentation:
# Note that some graphics adapters (AMD/ATI cards, for example) do not necessarily require 
# gfx_passthru option, so you can use the normal Xen PCI passthrough to assign the graphics card 
# as a secondary graphics card to the VM. The QEMU-emulated graphics card remains the primary 
# graphics card, and VNC output is available from the QEMU-emulated primary adapter.
gfx_passthru=0 # Disables graphics device PCI passthrough.

#################
# Event Actions #
#################
on_poweroff = 'destroy'
on_reboot   = 'restart'
on_crash    = 'restart'

###################################
# Miscellaneous Emulated Hardware #
###################################
usb=1
usbdevice = 'tablet' # Required to get the pointer mouse synchronized while using VNC
soundhw = "all"
serial='pty'
audio="on"

################################
# Emulated VGA Graphics Device #
################################
sdl=0
vnc=1
vnclisten="0.0.0.0"
vncconsole=1
vncpasswd=''

################################################
# Support for Paravirtualisation of HVM Guests #
################################################
#xen_extended_power_mgmt=1
xen_platform_pci=1
viridian = 1
monitor=1

[Xen 4.3.4] Window 10 Home - VGA Pass Through (GTX 680 harcoded to GRID K2)

Hello Xen! Yes I got back to Xen 2 weeks ago. There is no interesting game to port on Linux for the moment. So I took decision to get back to Xen. Below is a video of Windows 10 Home runing as a virtual machine with full access to my GPU (GRID K2). This card reminds me pretty nice great moments for 2011-2013


Xen 4.3.4: Windows 10 Home as virtual machine with full access to GPU (GTX 680, hardcoded to GRID K2)