Switch among Guest VMs organized by Resource Pool
.
main features:
ONE
GPU card,N
OS (at once)- Guest VM command client
- Handler power off
- Reset framebuffer
TOC
curl -fsSL https://github.com/rosineygp/proxmox-pci-switcher/releases/latest/download/pci-group-switcher.sh > pci-group-switcher.sh
# set execution permission
chmod +x pci-group-switcher.sh
# move for your snippets <storage>/<folder>
NAME | Default | Description |
---|---|---|
_POOL_NAME * | <auto_discovery> | The name of Resource Pool |
_SHUTDOWN_TIMEOUT | 300 | Checking if resource was released (Current VM Running is down) |
_RESET_GPU_FRAMEBUFFER | true | Reset GPU framebuffer |
All variables must be changed in
pci-group-switcher.sh
at proxmox ve.
_POOL_NAME
* By default it will scan for VMID in all Resource Pools, in case of long delays replace function call to Resource Pool name (eg. desktop, gpu, ...).
qm set <vmid> -hookscript <storage>:snippets/pci-group-switcher.sh
After proxmox configuration is possible to switch using proxmox api or web interface.
- requirements: python 3
pip install proxmox-pci-switcher
# create config folder
mkdir -p ~/.config/proxmox-pci-switcher/
# create config file
cat <<EOF > ~/.config/proxmox-pci-switcher/config.yaml
proxmox:
host: '<ip or dns>'
user: '<user>@<method>'
password: '<password>'
verify_ssl: false
pools:
- '<desktop>'
- '<gpu-nvidia>'
- '<gpu-amd>'
EOF
Edit
config.yaml
with your proxmox credentials and pools.
proxmox-pci-switcher list
pool(s) vmid name status type
---------- ------ --------------- -------- ------
desktop 119 catalina stopped qemu
desktop 116 win10-desktop stopped qemu
desktop 117 mini-desktop stopped qemu
desktop 103 u20-desktop running qemu
desktop 115 u20-srv-desktop stopped qemu
# run command directly
proxmox-pci-switcher switch win10-desktop
# create a alias for better experience
alias windows="proxmox-pci-switcher switch win10-desktop"
# and just run
windows
For windows is possible create a shortcut for better experience.
Target: C:\Users\<user>\AppData\Local\Programs\Python\Python39\python.exe C:\Users\<user>\Projects\proxmox-pci-switcher\src\client\proxmox-pci-switcher.py switch ubuntu -c C:\Users\<user>\Projects\proxmox-pci-switcher\src\client\config.yaml
Start in: C:\Users\<user>\AppData\Local\Programs\Python\Python39
For windows config.yml is located at:
C:\\Users\\<user>\\AppData\\Local\\proxmox-pci-switcher\\config.yaml