Proxmox has many features that I appreciate, but its FOSS nature and thriving community might just be my favorites. Thanks to a talented community of tinkerers, Proxmox has a massive number of script repositories that not only make it easy to use the virtualization platform, but also add certain functionalities to it. There’s the Proxmox VE Helper-Scripts repo for easy to use templates, PVE mods for real-time temperature monitoring, and Ultimate Updater for simpler VM and LXC updates.
Then there’s the Proxmox Enhanced Configuration Utility, a script I recently ran into. And well, it’s yet another useful repo for Proxmox users, especially if you’re someone looking to pass GPUs to your virtual guests.
What’s the point of running PECU?
It makes GPU passthrough a cinch

With all the documentation and guides created by the community, Proxmox is definitely easier to learn than other virtualization platforms. However, there are a couple of features that can be rather cumbersome to set up. PCI passthrough is one of them, as you’ll have to plow through a couple of config files to interface your PCIe devices with your virtual guests. Then there’s GPU passthrough, which takes the complexity of normal PCI devices and kicks it up a notch, as you’ll have to blacklist drivers and make even more tweaks – which are entirely different for the big three graphics card families.
However, Proxmox Enhanced Configuration Utility flips that notion on its head. Rather than forcing you to make all the necessary tweaks yourself, PECU automatically detects the GPUs connected to your motherboard and performs all the config file edits by itself. I was a bit apprehensive about its usefulness until I tried it myself. Sure enough, PECU works without a hitch, even though I’d used a system with an Intel iGPU of all things.
Useful VM templates

The automatic GPU passthrough support may be the killer feature of Proxmox Enhanced Configuration Utility, but it’s far from the only facility offered by it. The tool also includes some neat virtual machine templates, which are pretty decent if you’re looking to build powerful VMs for your Proxmox node. There’s one for Windows, another for Linux servers, and a third one for media-serving VMs, and you also get the ability to create and save your own templates.
Once you’ve created the templates, you can use the Clone button on your Proxmox node to deploy as many virtual machines as you want with them. That said, you’ll still have to add the boot ISO files as well as the GPU (once you’ve run the passthrough script) to the VMs created using the templates.
Simpler troubleshooting and backups

If you’ve ever dealt with GPU passthrough in the past, you’ll know how much of a pain troubleshooting it is, especially if you’ve only got one graphics card that you’ve assigned to a VM. The Proxmox Enhanced Configuration Utility has a couple of options to fix any problems GPU passthrough may incur. There’s one for unbinding VFIO devices at the press of a button, and another for editing the kernel parameters. The script also saves backups of your configs inside the /root/pecu-backup directory, so you can restore any changes made by the script. Finally, there’s also the option to perform a complete rollback of PECU’s configs in case you need to wipe the script’s actions clean.
Setting up PECU
It’s better to go for the experimental version

If you’ve read my Proxmox pieces here on XDA, you probably know that I’ve got some GPUs running in tandem with my PVE nodes. But since I wanted to gauge PECU’s usefulness, I went for a completely separate server for this experiment. To be precise, I used my TerraMaster F8 SSD Plus NAS that, despite lacking any slots for a conventional GPU, ships Intel UHD integrated graphics with its N305 processor.

As with other scripts, I began the experiment by running the bash command inside the Shell tab of the PVE node. Initially, I chose the Stable version (which is labeled 2) inside the wizard, though the Experimental variant houses more packages (including the VM templates). So, after quickly reloading the Shell, I entered 1 and pressed Y to install the dependencies.
Once PECU was fully loaded, I selected the Complete GPU Passthrough Setup option. The script scanned the IOMMU parameters and immediately detected the Intel UHD graphics. After configuring the VFIO modules, it presented a bunch of options for blacklisting the GPU drivers, which ensures the host doesn’t accidentally use the graphics card for output. I went with the Intel (i915) option, and the script began configuring KVM options. Soon, it presented a list of Additional Kernel Parameters, though I refused to add any to my setup. After that, PECU began installing the necessary dependencies, which took more than a few minutes. With GPU passthrough fully configured, my PVE node underwent a restart.
This may seem like a lot of work, but my input was barely required a couple of times – a far cry from my experience with passing graphics cards to virtual machines manually. Barring the installation step, where I blame the local package server for the slow download speeds, the overall process didn’t take more than ten minutes.
When my PVE node rebooted, I headed to the Hardware tab of my Debian virtual machine and added a PCI Device. As with passing GPUs the long way, I chose Raw Device and added the Alder Lake-N (UHD Graphics) option before starting the VM. Running the lsblk -k command revealed the iGPU in all its glory, and I began installing the Intel drivers.
Proxmox Enhanced Configuration Utility is quite the game-changer

Despite my initial skepticism, Proxmox Enhanced Configuration Utility has won me over. While I still believe you should read up on GPU passthrough to avoid getting sidelined if things go wrong, PECU is definitely useful if you’re looking to run graphics-heavy workloads inside virtual machines without dealing with the hassle of passing your graphics cards manually.