Open oloflarsson opened 1 year ago
I can confirm this issue also - it appears to be due to a change in the Parsec setup and the layout of the directory structure under C:\Program Files\Parsec, which no longer has the vigem subdirectory. Wonder if updating the script to use devcon.exe from the vdd subdirectory will produce a functionally identical result?...
Can confirm this works as a fix. Edit C:\Users\Administrator\Downloads\Parsec-Cloud-Preparation-Tool\Parsec-Cloud-Preparation-Tool-master\PostInstall\PostInstall.ps1 and change the -FilePath location on line 843 under the Disable Devices section to the following
Start-Process -FilePath "C:\Program Files\Parsec\vdd\devcon.exe"
Can confirm that this is an active issue following Parsec's own guide, metadata on the webpage puts this at only being a couple of months old.
I can also confirm that the fix by adjusting *\vigem\10\x64*
to *\vdd\*
in the PostInstall.ps1 script also works when trying this out on a g4dn.xlarge EC2 instance.
To avoid other errors, I also...
The full work-around is below, which is a shame as the 'out-of-the-box' experience is lost, but it get's the job done. Make sure you're connected to the Instance via RDP for the rest of these instructions. Everything here happens on the instance.
Install Gaming drivers\ Before you do ANYTHING, make sure that you're EC2 instance's IAM Role has the AWS's managed policy AmazonS3ReadOnlyAccess attached to it. Unfortunately I won't cover this here, but I assure you it's simple enough.
Create a Powershell script to get the gaming driver installer.
NVIDIA-Gaming-Drivers.ps1
and save it to the desktop.
$Bucket = "nvidia-gaming"
$KeyPrefix = "windows/latest"
$LocalPath = "$home\Desktop\NVIDIA"
$Objects = Get-S3Object -BucketName $Bucket -KeyPrefix $KeyPrefix -Region us-east-1
foreach ($Object in $Objects) {
$LocalFileName = $Object.Key
if ($LocalFileName -ne '' -and $Object.Size -ne 0) {
$LocalFilePath = Join-Path $LocalPath $LocalFileName
Copy-S3Object -BucketName $Bucket -Key $Object.Key -LocalFile $LocalFilePath -Region us-east-1
}
}
NVIDIA-Gaming-Drivers.ps1
that you just created and click run with powershell
. It is worth noting that it will look like nothing is happening, be patient as it is indeed working.Install the game drivers.\ The Above script would have dumped a folder on the desktop called "NVIDIA", Open the folder and traverse the directory tree until you get to the driver installation program, Run it.
Reboot the instance.\ You can do this by either...
Reconnect to the instance via RDP
Run this in powershell
New-ItemProperty -Path "HKLM:\SYSTEM\CurrentControlSet\Services\nvlddmkm\Global" -Name "vGamingMarketplace" -PropertyType "DWord" -Value "2"
Followed by This
Invoke-WebRequest -Uri "https://nvidia-gaming.s3.amazonaws.com/GridSwCert-Archive/GridSwCertWindows_2021_10_2.cert" -OutFile "$Env:PUBLIC\Documents\GridSwCert.txt"
Reboot the instance again.
Verify this worked.\ Run this in PowerShell
C:\Windows\System32\DriverStore\FileRepository\nvgrid*\\nvidia-smi.exe -q
You should see a big ass output and about half way down see something like this
vGPU Software Licensed Product
Product Name : NVIDIA Cloud Gaming
License Status : Licensed (Expiry: N/A)
Install Parsec without the driver update.
Download Parsec's Cloud prep tool
[Net.ServicePointManager]::SecurityProtocol = "tls12, tls11, tls"
$ScriptWebArchive = "https://github.com/parsec-cloud/Parsec-Cloud-Preparation-Tool/archive/master.zip"
$LocalArchivePath = "$ENV:UserProfile\Downloads\Parsec-Cloud-Preparation-Tool"
(New-Object System.Net.WebClient).DownloadFile($ScriptWebArchive, "$LocalArchivePath.zip")
Expand-Archive "$LocalArchivePath.zip" -DestinationPath $LocalArchivePath -Force
Find the PostInstall script and unfortunately edit it...\
Raised in this GH issue you'll need to navigate to this folder in file explorer --> C:\Users\Administrator\Downloads\Parsec-Cloud-Preparation-Tool\Parsec-Cloud-Preparation-Tool-master\PostInstall
PostInstall.ps1
script and click edit to launch the PowerShell ISE.crtl + H
to open "find and replace"vigem\10\x64
, Replace with: vdd
crtl + s
Run the script.
Open PowerShell and run this command to cd into the PostInstall dir
cd C:\Users\Administrator\Downloads\Parsec-Cloud-Preparation-Tool\Parsec-Cloud-Preparation-Tool-master\PostInstall
Run the script
.\PostInstall.ps1 -DontPromptPasswordUpdateGPU
It is worth noting that:
At this point I felt that after a while things had "hung"; I went to crtl + c
and try running this again that had somehow triggered the next set of commands.
I saw a tonne of errors pop up relating to moving/creating files that don't exist, but it still successfully installed... I didn't document this as I was already quite fed up with troubleshooting.
Find the Parsec app in the windows search bar and run it for the fist time! It should work!
If Anyone wants further help, I've configured a few CloudFormation templates and bash scripts that automate most of this (or at least I'm doing that now) So let if someone else needs help, hit me up, I've gone through a lot of failed attempts at setting up a g4dn instance.
@wannabewayno can't thank you enough for these instructions, I was practically pulling out my hair with this until I started from scratch and followed your instructions. THANK YOU! Maybe submit a PR, despite the errors at the end, it worked perfectly.
@smshapiro85 Hey mate no worries! I was pulling my hair out too! Since I wrote that fix, I've completely re-worked the script and deleted about 1/3 of it. There's a startup script that runs on boot that overrides your parsec login with a non-existent "team id" login which should also be disabled.
Point is, I've made a heap of changes that is probably outside the scope of a PR and it looks like this repo isn't being maintained anymore. The Original Author of this issue has made 2 PR's and that hasn't been looked at.
I've found a lot of dead-ends and unhelpful people regarding cloud gaming so I'm honestly just happy to help out. If you're running your hardware on AWS then I have a a complete plug and play solution for you if you want, just let me know the best way to contact you outside of an issue thread!
@wannabewayno , why not just fork this repo, make the updates, and then share with the world? That's the core concept of github and forking.
I did not try yet, but can we also skip installing the driver updating? https://aws.amazon.com/marketplace/pp/prodview-xrrke4dwueqv6?sr=0-1&ref_=beagle&applicationId=AWSMPContessa
Hello, just here to tell that this still works like a charm in 2024. Thanks to @wannabewayno for this fix