Windows 图形显示驱动开发-WDDM 2.4功能-GPU 半虚拟化(七)

 设置主机和 VM

  • 在 PowerShell 中运行以下命令,使用 GPU 创建 VM。 创建名为 TEST 的 VM。
$vm = “TEST“
New-VM -VMName $vm -Generation 2
Set-VM -GuestControlledCacheTypes $true -VMName $vm
  • 为 VM 设置 IO 空间。 GPU-PV 使用 IO 空间来处理 CPU 可见的分配。 至少需要 8GB 的 IO 空间。
Set-VM -LowMemoryMappedIoSpace 1GB -VMName $vm
Set-VM -HighMemoryMappedIoSpace 16GB -VMName $vm
  • [可选]默认情况下,高内存 IO 空间的基址设置为 (64GB - 512MB)。 在具有 36 位物理内存寻址的 Haswell 芯片集上,IO 空间区域的结束地址需要低于 64GB,因此需要相应地设置起始地址。 使用以下参数运行时,以下脚本名为 SetHighMmioBase.ps1,将起始地址设置为 47GB:
SetHightMmioBase.ps1 “TEST” 48128

# SetHighMmioBase.ps1

param( [string]$VmName, $BaseInMB)

function Get-WMIVM
{
    [CmdletBinding()]
    param(
        [parameter(Mandatory=$true)]
        [ValidateNotNullOrEmpty()]
        [string]$VmName = ""
        )

gwmi -namespace root\virtualization\v2 -query "select * from Msvm_ComputerSystem where ElementName = '$VmName'"
}
function Get-WMIVmSettingData
{
    [CmdletBinding()]
    param(
        [parameter(Mandatory=$true)]
        [ValidateNotNullOrEmpty()]
        [string]$VmName = ""
        )
    $vm = Get-WMIVM $VmName

return $vm.GetRelated ("Msvm_VirtualSystemSettingData","Msvm_SettingsDefineState",$null,$null, "SettingData", "ManagedElement", $false, $null)
}

Write-Host "Setting HighMmioGapBase to $BaseInMB for VmName $VmName"
$vssd = Get-WMIVmSettingData $VmName
$vmms = Get-WmiObject -Namespace "root\virtualization\v2" -Class Msvm_VirtualSystemManagementService
$vssd.HighMmioGapBase = $BaseInMB
$settingsText = $vssd.PSBase.GetText("CimDtd20")
$ret=$vmms.ModifySystemSettings($settingsText).ReturnValue
if ($ret -eq 0)
{
   Write-Host "Successfully set" $vssd.HighMmioGapBase
} else
{
   Write-Host "Error $ret"
}
  •  将虚拟 GPU 添加到 VM 并禁用检查点
    Add-VMGpuPartitionAdapter -VMName $vm
    Set-VM -CheckpointType Disabled -VMName $vm
  • 若要检查 VM 是否具有半虚拟化 GPU,请执行以下命令:
​
Get-VMGpuPartitionAdapter -VMName $vm in PowerShell. The output should show the adapter.

# Example output from running the command

MinPartitionVRAM        :
MaxPartitionVRAM        :
OptimalPartitionVRAM    :
MinPartitionEncode      :
MaxPartitionEncode      :
OptimalPartitionEncode  :
MinPartitionDecode      :
MaxPartitionDecode      :
OptimalPartitionDecode  :
MinPartitionCompute     :
MaxPartitionCompute     :
OptimalPartitionCompute :
Name                    : GPU Partition Settings
Id                      : Microsoft:9ABB95E2-D12D-43C3-B840-6F4A9CFB217B\929890BC-BB33-4687-BC1A-F72A4F1B3B3F
VMId                    : 9abb95e2-d12d-43c3-b840-6f4a9cfb217b
VMName                  : TEST
VMSnapshotId            : 00000000-0000-0000-0000-000000000000
VMSnapshotName          :

CimSession              : CimSession: .
ComputerName            : MYCOMPUTER-TEST2
IsDeleted               : False
VMCheckpointId          : 00000000-0000-0000-0000-000000000000
VMCheckpointName        :

​
  •  将 VM 中使用的同一客户端版本的 VHDX 复制到主机目录。 例如,d:\VM\os.vhdx。 

  •  打开 Hyper-V 管理器并修改 VM 参数(选择 VM 并选择“设置”):
  1.  安全性 - 取消选中 启用安全启动。
  2. 内存 - 选中“启用动态内存”。 将内存量设置为 1,024 MB 或更多。
  3. 处理器 - 将 虚拟处理器数 设置为 2 或 4。
  4. 网络适配器 - 从下拉列表中选择要用于 VM 的网络适配器。 如果启用了网络调试,请确保选择Microsoft调试NET适配器。
  5. SCSI 控制器 - 硬盘驱动器 - 添加 - 虚拟硬盘 - 浏览 - 选择 d:\VM\os.vhdx
  •  当在来宾中初始化适配器时,OS 会将文件从主机驱动程序存储复制到来宾中的 HostDriverStore 目录。
  1. 挂载 VM 的 VHDX。 例如,挂载到磁盘 f:。
  2. 在装载的 VM 中,创建名为 f:\%windir%\system32\HostDriverStore\FileRepository的目录。
  3. 将主机中的 %windir%\system32\DriverStore 驱动程序文件复制到 VM。 VM 中应有 f:\%windir%\system32\HostDriverStore\FileRepository\YourDriverDirectory\* 。
  •  如果驱动程序需要从 %windir%\system32 或 %windir%\syswow64访问文件,请手动将文件复制到 VM。 

  •  如果驱动程序没有经过 Microsoft 签名,请在 VM 中启用测试签名。 在 CMD 管理窗口中运行以下命令:
bcdedit /store <VM drive>:\EFI\Microsoft\Boot\BCD -set {bootmgr} testsigning on

 卸载 VM 的 VHDX。

  •  启动 VM。

  • 使用“Hyper-V 管理器连接”选项连接到 VM。  

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值